StringBuilder
StringBuilder的构造函数
public StringBuilder();
public StringBuilder(int capacity);
public StringBuilder(string Value);
public StringBuilder(int capacity,int MaxCapacity);
public StringBuilder(string Value,int capacity);
public StringBuilder(string value,int startIndex,int length, int capacity);
capacity:StringBuilder对象的建议初始大小。
Value:字符串,包含用于初始化StringBuilder对象的子字符串。
startIndex value:子字符串开始的位置。
length:子字符串中的字符数。
StringBuilder类中的常用方法
Append 将文本或字符串追加到指定对象的末尾
AppendFormat 自定义变量的格式并将这些值追加到StringBuilder对象的末尾
Insert 将字符串或对象添加到当前StringBuilder对象的指定位置。
Remove 从当前StringBuilder对象中移除指定数量的字符。
Replace 用另一个指定的字符来替换StringBuilder对象内的字符。
class Program { static void Main(string[] args) { int Num = 678; StringBuilder SBuilder = new StringBuilder("哈哈哈!",100); SBuilder.Append(")嘿嘿黑!!!"); Console.WriteLine(SBuilder); SBuilder.AppendFormat("{0:C}", Num); Console.WriteLine(SBuilder); SBuilder.Insert(0,"软件: "); Console.WriteLine(SBuilder); SBuilder.Remove(14,SBuilder.Length-14); Console.WriteLine(SBuilder); SBuilder.Replace("软件","软件工程师"); Console.WriteLine(SBuilder); Console.ReadLine(); } }
string类与StringBuilder类的区别
string类是不可改变的,每次使用string类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符进串进行重复修改的情况下,与创建新的string对象相关联的系统开销可能会非常昂贵。如果要修改字符串而不是创建新的对象,则可以使用StringBuilder类。例如在一个循环中将许多的字符串连在一起时,使用StringBuilder类可以提升性能。
string a="aa"+"bb";
StringBuilder SBuilder=new StringBuilder();
SBuilder.Append("aa");
SBuilder.Append("bb");
第一种方法在内存中操作时,有三个string变量,而第二种方法在内存中操作时只有一个("aabb")变量。