c# 可變字符串 StringBuilder


普通的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;

  

 
常用函數
append 將文本字符串追加到指定對象末尾
appendFormat 自定義變量的格式並將這些☞追加到stringbuilder末尾
insert 將字符串或對象添加到string builder指定位置
remove 從當前stringbuilder對象中移除指定數量的字符
replace 用另一個指定的字符串來替換stringbuilder 對象內的字符

  

 
 
例子:
int n = 100;
StringBuilder a = new StringBuilder("用一生下載你",100);
Console.WriteLine(a);
a.Append("vs 世界");
Console.WriteLine(a);
a.AppendFormat("{0}:c",n);
Console.WriteLine(a);
a.Insert(0,"名稱:");
Console.WriteLine(a);
a.Remove(15,a.Length-15);
Console.WriteLine(a);
a.Replace("名稱","一生所愛");
Console.WriteLine(a);

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM