了解string,请点击这里
为什么用StringBulder?
例子:
string a = "str_1";
a = "str_2";
在内存中创建"str_1"和"str_2"两个字符串,但只有"str_2"在被使用,"str_1"不会被修改或消失,这样就浪费了内存资源,而且字符串一旦创建就不可修改大小,每次使用System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。
而StringBuider在修改字符串的同时不会创建新对象。
StringBuider的使用
导入命名空间using System.Text;
例子:
StringBuilder sb = new StringBuilder(20);
sb.Append("hello ");
sb.Append("world");
Console.WriteLine(sb);
string与StringBuilder的区别
1.String声明之后在内存中大小是不可修改的,而StringBuilder可以自由扩展大小(String分配在栈区,StringBuilder分配在堆区)
2.在内存上的区别
StringBuilder sb = new StringBuilder(20);
sb.Append("china");
string s1 = "china";
常用函数
StringBuilder sb = new StringBuilder(20);
//Capacity(设置容量)
sb.Capacity=25;
//Append
sb.Append("china");
//AppendFormat(格式化输出)
int MyInt = 25;
StringBuilder sb1 = new StringBuilder("Your total is ");
sb1.AppendFormat("{0:C} ", MyInt);
Console.WriteLine(sb1); //结果:Your total is $25.00
//Insert
sb.Insert(2, "xiao");
Console.WriteLine(sb);//chxiaoina
//Remove
sb.Remove(2, 4);
Console.WriteLine(sb);//china
//Replace
sb.Replace('a', 'p');
Console.WriteLine(sb);//chinp
Console.ReadKey();