asp.net

String和StringBuilder

2013-10-30

当有两个或多个字符串要连接时你会选择边种方法呢?

"石家庄"同"飞讯"是两个字符串.

一般情况下,可以用"+"号将它们连起来,这最简单直接的做法.

例子如下.

string str1="石家庄";

string str2="飞讯";

string R=string.empty;

R=str1+str2;

Console.WriteLIne(R);

结果为:"石家庄飞讯"。

 

另一个方法:

StringBuilder str=new StringBuilder();

str.Append("石家庄");

str.Append("飞讯");

Console.WriteLine(str);

结果是:"石家庄飞讯".

 

两种方法相同效率,每一个string,都会重新分配一个内存空间.

当有大两字符串要连接的时候,使用string是明智既做法,而StringBuilder在初始化时都会分配一个指定大细既空间,例如每个空间是50个字符,只要不超出,就不会再重新分配.

 

string 或者StringBuilder对象串联操作的性能取决于内存分配的发生频率,

string 串联操作每次都分配内存,

而StringBuilder串联操作仅是StringBuilder对象缓冲区太小而无法容纳新数据的时候先分配内存.

所以,如果串联固定数量的字符串string对象的时候用string类更适合串联操作.

系哩种情况下,编译器甚至会将各个串联操作组合系一个操作入面.

如果串联任意数量的字符串,就用StringBuilder对象更适合串联操作,

好似某个循环对用户输入任意数量的字符串进行串联.