C# string类和stringBuilder类的区别
2010-10-22 08:04:04 来源:WEB开发网首先两个类的工作原理不同:string类是一种传统的修改字符串的方式,当把一个字符串添加到另一个字符串时,系统先是把两个字符串写入内存,接着删除原来的string对象,然后创建一个string对象,并读取内存中的数据付给该对象。
而System.Text名字空间下的StringBuilder类就不一样了,StringBuilder 类提供的Append方法能够在已有对象的原地进行字符串的修改。这样就会比string的方式省了不少时间(当在一个循环中将一个字符串连接在一起的时候,使用StringBuilder类可以提升性能)
一下摘抄StringBuilder类的说明:
①设置容量和长度
StringBuilder MyStringBuilder = new StringBuilder("Hello World");
StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是可以为它的最大可容字符数指定一个值,即该对象的容量,当修改StringBuilder达到最大容量,它将自动分配新的空间且容量翻倍。
StringBuilder MyStringBuilder = new StringBuilder("Hello,World!",25);
也可以用MyStringBuilder.Capatity = 25 ,即Capacity属性来设置对象的最大长度
②StringBuilder方法的使用
Append 将字符串追加到当前StringBuilder的结尾
StringBuilder sb = new StringBuilder("Hello,World!");
sb.Append("What a beautiful day.");
Console.WriteLine(sb);
输出:Hello,World!What a beautiful day.
AppendFormat 用带格式文本替换字符串中传递的格式说明符。
int MyInt = 25;
StringBuilder sb = new StringBuilder("Your total is");
sb.AppendFormat("{0:C}",MyInt);
Console.WriteLine(sb);
输出:Your total is ¥25.00.
Insert 将字符串插入到当前StringBuilder 对象指定的索引处。
例如:将一个单词插入到StringBuilder的第六个位置
StringBuilder sb = new StringBuilder("Hello,World!"); sb.Insert(6,"beautiful");
输出:Hello,beautifulWorld!
Remove 从当前StringBuilder 对象中移除指定数量的字符。
从零开始的索引处删除指定的字符数量
StringBuilder sb = new StringBuilder("Hello,World!"); sb.Remove(4,3);
输出:Hellorld!
Replace 替换指定索引处的字符。
StringBuilder MyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Replace('!', ' ');
Console.WriteLine(MyStringBuilder);
Tags:C# string stringBuilder
编辑录入:爽爽 [复制链接] [打 印]赞助商链接