對字串進行大量操作時比如拼接、擷取,會在記憶體中新建很多字串物件。為了減少記憶體開支,可以使用stringbuilder型別。
建立stringbuiler例項:
用建構函式直接建立:
stringbuilder mystringbuilder = new stringbuilder("hello world!");
或建立空的例項再賦值;
stringbuilder mystringbuilder = newstringbuilder();
"hello world!
");
stringbuilder str= new stringbuilder("hello world!");
"c");
得到:hello world!c
2、tostring():得到字串:
stringbuilder str= new stringbuilder("hello world!");
str.tostring();
得到 hello world!
stringbuilder str= new stringbuilder("hello world!
");
"", 10);
得到: hello world!¥10.00
補充: "0"表示佔位符。c 是格式化控制資訊,c表示貨幣格式。
c | c:代表貨幣格式
d | d:代表十進位制格式
e | e:代表科學計數(指數)格式
f | f: 浮點格式
x | x: 十六進製制格式。
4、insert(int offset, string str)/insert(int offset, char c):在指定位置之前插入字元(串)
stringbuilder str= new stringbuilder("hello world!");
str.insert(
6,"cute
");
得到:hello cute world!
5、remove(int offset,int length) 移除指定位置開始的指定長度的字元(串):
stringbuilder str= new stringbuilder("hello world!");
str.insert(
6,"cute ");
str.remove(
6, 4);
得到 hello world!
6、replace (string str,string str2)將str替換成str2:
stringbuilder str= new stringbuilder("hello world!");
str.replace(
"world
","china
");
得到:hello china!
在以下情況應該考慮使用string
在生成字串時,必須執行大量的搜尋操作。 stringbuilder類缺少搜尋方法,如indexof
或startswith
。 stringbuilder對於這些操作,必須將物件轉換為 string ,這可能會使使用stringbuilder不會帶來效能優勢
在以下情況應該考慮使用stringbuilder
常用類庫StringBuilder
常用類庫 stringbuilder高效的字串操作 後台編輯使用的比較多 當大量進行字串操作的時候,比如,很多次的字串的拼接操作。string 物件是不可變的。每次使用 system.string 類中的乙個方法時,都要在記憶體中建立乙個新的字串物件,這就需要為該新物件分配新的空間。在需要對字串執行...
StringBuilder類與String類的區別
url string 物件是不可改變的。每次使用 system.string 類中的方法之一或進行運算時 如賦值 拼接等 時,都要在記憶體中建立乙個新的字串物件,這就需要為該新物件分配新的空間。而 stringbuilder 則不會。在需要對字串執行重複修改的情況下,與建立新的 string 物件相...
18 StringBuilder類 包裝類
string類的字串是常量,它們的值在建立之後就不能修改,如果進行字串的相加,記憶體中就會有大量的字串,占用空間多,效率低 stringbuilder類的字串緩衝區,底層也是乙個陣列,但是沒有final,內容可以改變,這個陣列的初始長度為16,如果超出了會自動擴充 構造方法 無參構造 stringb...