谈String与StringBuilder的性能
String和StringBuilder 的性能比较,网上能找到很多,但是大多数都是比较字符串的连接性能,字符串的连接 String +=的效率确实不如StringBuilder ,这个大家都能在网上找很多的示例。就这样,我们被这些铁证同化了,我们开始泛滥的使用StringBuilder,StringBuilder 就是B String好,甚至有些朋友更进一步,对StringBuilder再进行封装,重载运算符搞个类,来代替String。
但是不是对字符串的一些操作String 都不如StringBuilder呢?
String 和StringBuilder的区别:
1. 虽然两者都是引用类型,但是在C#中String作为值的时候通常当做结构体一样处理,例如:我们写:
string text = "abc";text.Replace("a", "b");是不是这样,text的值就变了呢?很显然没有,我们得这样写:
text = text.Replace("a", "b");还有String作为函数参数的时候,我们是否意识了呢?
如果换做StringBuilder就不需要第三步的代码了。
2. String 和StringBuilder的方法也并不是完全一样,这是废话,当然不会一样了,那好,那就是他们也包含相同,相似的功能的方法。
以前我了解到StringBuilder 在连接字符串的时候效率很高,从此以后我就爱屋及乌,只要遇到String的方法在StringBuilder中有的,就会优先使用StringBuilder,也没问为什么,脑子里就一个信仰,StringBuilder真汉子,铁血真爷们!
这里,我就开始有些怀疑,难道StringBuilder的中的方法都比String的强吗?探索精神,耶!
我用的是VS2008,见如下代码:
补充:软件开发 , C语言 ,