WEB开发网
开发学院WEB开发ASP.NET C# string类和stringBuilder类的区别 阅读

C# string类和stringBuilder类的区别

 2010-10-22 08:04:04 来源:WEB开发网   
核心提示:首先两个类的工作原理不同:string类是一种传统的修改字符串的方式,当把一个字符串添加到另一个字符串时,C# string类和stringBuilder类的区别,系统先是把两个字符串写入内存,接着删除原来的string对象,例如:将一个单词插入到StringBuilder的第六个位置StringBuilder sb

首先两个类的工作原理不同: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

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接