当前位置:编程学习 > C#/ASP.NET >>

StringBuilder的作用

StringBuilder的作用是什么,在什么地方要用到 --------------------编程问答-------------------- 避免频繁使用 s = s+"sss",这样的代码,这样每次都会开辟新的空间给s,用StringBuilder可以提高效率 --------------------编程问答-------------------- 拼接字符串。比 += 要好点  --------------------编程问答-------------------- 主要用在字符串拼接,stringbuilder是动态数组 可以提高效率  --------------------编程问答-------------------- 用在字符串拼接(Concact),stringbuilder避免多次分配对象,提高效率   --------------------编程问答-------------------- StringBuilder用于频繁大量的字符串拼接操作,相对于使用 s = s+"sss"这样的操作,提高了性能。 --------------------编程问答-------------------- 大量拼接字符串时效率比string的+=高 --------------------编程问答-------------------- --------------------编程问答-------------------- 频繁操作字符串的时候用到。 --------------------编程问答-------------------- 如果后台程序写html文件等也会用到,主要还是用于字符串的拼接 --------------------编程问答-------------------- string s = "test";
for(int i=0; i<1000;i++)
{
   s+="hello";
}

StringBulider sb = new StringBuilder("test");
for(int i=0; i<1000;i++)
{
   sb.Append("hello");
}
下面的方法比上面的效率高的多。 --------------------编程问答-------------------- 他的作用就是把长的字符串拆分,变成简单直关的字符串,增加程序的可读性。而且这个字符串在拼接的时候都是一个字体符,不产生垃圾。呵呵。 --------------------编程问答-------------------- string的字符串操作都是废弃已有的对象,开辟一个新的内存空间创建一个新的对象
比如一个
string str= "字符串";
str += "a";
这样的操作后就会有两个字符串对象:"字符串"和"字符串a"了,并且"字符串"还要作回收。
但是用StringBulider就不会,StringBulider是一个字符串工厂,你丢了一千个字符串到里面做拼接,他不会不不停的创建新的对象,只有在最后调用ToString()的时候才作一次创建字符串的操作,这样的大量操作的时候效率就高很多了 --------------------编程问答-------------------- http://msdn.microsoft.com/zh-cn/library/system.text.stringbuilder(VS.80).aspx

String 或 StringBuilder 对象的串联操作的性能取决于内存分配的发生频率。String 串联操作每次都分配内存,而 StringBuilder 串联操作仅当 StringBuilder 对象缓冲区太小而无法容纳新数据时才分配内存。因此,如果串联固定数量的 String 对象,则 String 类更适合串联操作。这种情况下,编译器甚至会将各个串联操作组合到一个操作中。如果串联任意数量的字符串,则 StringBuilder 对象更适合串联操作;例如,某个循环对用户输入的任意数量的字符串进行串联。

看懂这句就懂了!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,