5.3可变字符串StringBuilder
5.3.1定义
- public StrinBulider(string value, int cap);
- value:StringBulider对象引用的字符串
- cap:设定StringBulider对象的初始大小
例5.21创建一个StringBulider对象,初始引用字符串为“Hello World!”
StringBuilder MyStringBuilder =new StringBuilder ("Hello World!");
5.3.2使用
使用之前先引用命名空间System.Text
常用方法及说明
例5.22创建一个控制台应用程序,声明一个Int类型的变量Num,并初始化为1000。然后创建一个StringBuilder对象LS,初始化为“用一生下载你”,初始值为100。使用以上方法操作StringBuilder对象
static void Main(string[] args)
{
int Num = 1000;
StringBuilder LS = new StringBuilder("用一生下载你",100);
LS.Append(" VS 光风霁月");//使用Append方法将光风霁月追加到LS的末尾
Console.WriteLine(LS);
LS.AppendFormat("{0:C}", Num);//C指取值类型,以货币格式显示数值。
//使用AppendFormat方法自定义变量的格式并将这些值追加到LS的末尾
Console.WriteLine(LS);
LS.Insert(0, "名称:");//使用Insert方法将字符串或对象添加到LS中的索引0处
Console.WriteLine(LS);
LS.Remove(15, LS.Length - 15);//使用Remove方法将从LS中移除索引15以后的字符
Console.WriteLine(LS);
LS.Replace("名称", "一生所爱");//使用Replace方法用"一生所爱"来替换LS内的"名称"
Console.WriteLine(LS);
Console.ReadLine();
}
程序运行结果为:
用一生下载你 VS 光风霁月
用一生下载你 VS 光风霁月¥1,000.00
名称:用一生下载你 VS 光风霁月¥1,000.00
名称:用一生下载你 VS 光风
一生所爱:用一生下载你 VS 光风
StringBuilder类与String类的区别
String对象是不可改变的,每次使用String类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用StringBuilder类。例如,当在一个循环中将许多字符串连接在一起时,使用StringBuilder类可以提升性能。