知识大全 string和StringBuilder比较
Posted 知
篇首语:使人疲惫的不是远方的高山,而是鞋里的一粒沙子。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 string和StringBuilder比较相关的知识,希望对你有一定的参考价值。
string和StringBuilder比较 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
string与StringBuilder的区别
string对象是不可变的 包括长度或者其中的任何字符都是不可以改变的
string @string = a ;
@string = @string + b ;
以上代码让人误以为@string是能够增加长度的 其实第二句代码是重新创建了一个新的对象 而第一个对象被丢弃 它将成为垃圾收集器收集的对象
C#中不能使用new string()来构造一个string对象 假如可以 以上代码相当于
string @string = new string( a );
@string = new string( a + b );
StringBuilder是可变的 它是专门用于对字符串和字符执行动态操作的类
用StringBuilder实现:
StringBuilder stringBuilder = new StringBuilder( a );
stringBuilder Append( b );
StringBuilder在内部有一个足够长的字符数组用于存放字符串对象 当字符串长度没超过字符数组长度时 所有操作都是针对同一个字符数组 当长度超过时 StringBuilder将自动创建一个更长的数组 把原来的数据复制到新数组中
字符串操作性能比较
让string和StringBuilder执行相同的操作:循环追加一个字符串 a
public static void CompareString()
UseString();
UseStringBuilder();
private static void UseString()
string @string = ;
DateTime startTime = DateTime Now;
for (int i = ; i < ; i++)
@string += a ;
DateTime endTime = DateTime Now;
TimeSpan timeSpan = endTime startTime;
Console WriteLine(timeSpan ToString());
private static void UseStringBuilder()
StringBuilder stringBuilder = new StringBuilder();
DateTime startTime = DateTime Now;
for (int i = ; i < ; i++)
stringBuilder Append( a );
DateTime endTime = DateTime Now;
TimeSpan timeSpan = endTime startTime;
Console WriteLine(timeSpan ToString());
运行CompareString()函数得到以下结果
运行次数 时间 string 万次 秒 StringBuilder 一百万次 秒
结论 使用StringBuilder对字符串动态追加的速度是string的 倍左右
cha138/Article/program/net/201311/11387相关参考
c#中String和string的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! strin
知识大全 ViewState与Request.Form及string和String的区别
ViewState与Request.Form及string和String的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,
Datatbel和string之间的相互转换 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 今天
在String中==和equals的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!下面是源代码
string、Empty和null三者的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这是
int和String互相转换的多种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!如何将字串St
知识大全 Java中的String、StringBuffer和Math类
Java中的String、StringBuffer和Math类 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
知识大全 String和stringBuffer类字符串的区别
String和stringBuffer类字符串的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 用Java写出一段string和stringbuffer的代码
用Java写出一段string和stringbuffer的代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
知识大全 C#中的DBNull、Null和String.Empty解释
C#中的DBNull、Null和String.Empty解释 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看