黑马程序员技术交流社区

标题: System.String 和System.StringBuilder有什么区别? [打印本页]

作者: 阮佳佳    时间: 2012-12-25 09:18
标题: System.String 和System.StringBuilder有什么区别?
System.String 和System.StringBuilder有什么区别?平时该用哪个?
作者: Sailing.    时间: 2012-12-25 09:25
String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。平时是string就够了,如果你要不断拼接字符串就使用StringBuilder。
作者: hanyahui    时间: 2012-12-25 09:26
字符串是常量;它们的值在创建之后不能改变。
字符串缓冲区支持可变的字符串。
作者: 黄锦成    时间: 2012-12-25 09:30
通常我们使用String,但是如果要动态构建一个字符串,建议使用StringBuilder,性能会比较好
作者: 谢辉林    时间: 2012-12-25 10:18
strig类是不可变类,任何对string的改变都会引发新的string对象的生成。
StringBuilder类是可变类,对StringBuilder改变都不会产生新的对象。
看需求了而定,不过一般都使用string,但是如果你要动态地构建一个字符串,建议使用StringBuilder,效率高。
作者: 苗昆明    时间: 2012-12-25 11:49
String:为不可变对象,一旦被创建,就不能修改它的值.
StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
字符串连接操作中StringBuffer的效率要比String高,如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高.
.
作者: 鲜学良    时间: 2012-12-25 14:27
:String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而StringBuilder 则不
会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用StringBuilder,不要使
用String
如果要操作一个不断增长的字符串,尽量不用String 类,改用StringBuilder 类。两个类的工
作原理不同:String 类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到
另一个字符串上的工作没错,但是在.NET 框架下,这个操作实在是划不来。因为系统先是把
两个字符串写入内存,接着删除原来的String 对象,然后创建一个String 对象,并读取内存
中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text 命名空间下面的
StringBuilder 类就不是这样了,它提供的Append 方法,能够在已有对象的原地进行字符串
的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个
字符串进行大量的添加操作,那么StringBuilder 类所耗费的时间和String 类简直不是一个数
量级的。
作者: 管冉    时间: 2012-12-25 14:33
在进行大量运算的时候System.String比System.StringBuilder需要耗费大量的内存和cpu,
而且运行速度也相对较慢
作者: 杭州-杨    时间: 2012-12-25 15:44
如果你是一个变量的话,用String
如果你是一个字符串拼接,那么建议使用StringBuilder这样效率会高





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2