当前位置:编程学习 > C/C++ >>

谈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语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,