知识大全 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的区别

c#中String和string的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  strin

知识大全 ViewState与Request.Form及string和String的区别

ViewState与Request.Form及string和String的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,

知识大全 Datatbel和string之间的相互转换

Datatbel和string之间的相互转换  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天

知识大全 在String中==和equals的区别

在String中==和equals的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!下面是源代码

知识大全 string、Empty和null三者的区别

string、Empty和null三者的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这是

知识大全 int 和 String 互相转换的多种方法

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)小编为大家搜集整理后发布的内容,让我们赶快一起来看