c 可變字串 StringBuilder

2022-05-06 05:09:09 字數 1239 閱讀 3956

普通的string不可變,除非用+ 但是+兩個字串後 會生成乙個新的string例項。會在記憶體中建立新的字串物件。如果重複的對字串修改,將極大的增加記憶體開銷。c#提供了個可變的字串序列stringbuilder類。大大的提高了頻繁增加字串的效率

構造方法

stringbuilder mystringbuilder = new stringbuilder("hello world!");

(一)設定容量和長度

雖然 stringbuilder 物件是動態物件,允許擴充它所封裝的字串中字元的數量,但是您可以為它可容納的最大字元數指定乙個值。此值稱為該物件的容量,不應將它與當前 stringbuilder 物件容納的字串長度混淆在一起。例如,可以建立 stringbuilder 類的帶有字串「hello」(長度為 5)的乙個新例項,同時可以指定該物件的最大容量為 25。當修改 stringbuilder 時,在達到容量之前,它不會為其自己重新分配空間。當達到容量時,將自動分配新的空間且容量翻倍。可以使用過載的建構函式之一來指定 stringbuilder 類的容量。以下**示例指定可以將 mystringbuilder 物件擴充到最大 25 個空白。

stringbuilder mystringbuilder = new stringbuilder("hello world!", 25);

另外,可以使用讀/寫 capacity 屬性來設定物件的最大長度。以下**示例使用 capacity 屬性來定義物件的最大長度。

mystringbuilder.capacity = 25;

常用函式

insert 將字串或物件新增到string builder指定位置

remove 從當前stringbuilder物件中移除指定數量的字元

replace 用另乙個指定的字串來替換stringbuilder 物件內的字元

例子:

int n = 100;

console.writeline(a);

console.writeline(a);

console.writeline(a);

a.insert(0,"名稱:");

console.writeline(a);

a.remove(15,a.length-15);

console.writeline(a);

a.replace("名稱","一生所愛");

console.writeline(a);

字串 可變字串與不可變字串

一 nsstring 是不可變字串,所有它所有產生其他字串方法都是生成乙個新的字串,而不會改變原來字串 第一種 字面量 它是常量字串,儲存常量區 nsstring str abc 第二種是通過 快捷的構造方法 nsstring stringwithformat 第三種方式 初始化方法 nsstrin...

StrngBuffer可變字串

stringbuffer和string區別 stringbuffer和string區別 string 一單被建立後,值就不能改變,如果參與了操作,引用發生了變化,不是在原有的字串上操作,而是產生了新的字串。stringbuffer建立後值可以變化 增刪改 位址不會有變化,不會產生新的字串。strin...

可變長字串

目錄stringbuilder 其他可變長字串,jdk1.0提供,執行效率慢,執行緒安全字串緩衝區 執行緒安全的可變字串 字串行 字串 如果字串需要頻繁修改,可用stringbuffer構造方法stringbuffer 初始容量為16個字元 stringbuffer int capacity 構造乙...