string和stringBuilder什么区别?

makeppy 2009-01-04 04:46:59
怎么决定该使用哪个呢?
...全文
284 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xierfly 2009-01-04
  • 打赏
  • 举报
回复
9,12 层给了很好、很全的解析
Robin 2009-01-04
  • 打赏
  • 举报
回复
stringBuilder是动态分配内存空间,string 是固定的。
一般在大字符串的拼接用StringBuider效率比string高很多。
superlcstar 2009-01-04
  • 打赏
  • 举报
回复
up
vrhero 2009-01-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 niitnanfeng 的回复:]
msdn 里有详细的说明,涉及到装箱和拆箱。你自己去那查查,有详细的讲解。
[/Quote]
不涉及装拆箱...string是引用类型...

string用于很少改变的字符串...StringBuilder用于频繁变动的字符串或大量字符串拼接...
HDNGO 2009-01-04
  • 打赏
  • 举报
回复
拼字符串拼的量大了就搞个StringBuilder~

简单一个变量。。。没必要了吧~
koukoujiayi 2009-01-04
  • 打赏
  • 举报
回复
11楼更正:对应的StringBuilder语句为:

StringBuilder a = new StringBuilder("1");
a.Replace("1","2");
wuyq11 2009-01-04
  • 打赏
  • 举报
回复
String类对象是不可改变的(只读),对于String对象的重新赋值在本质上是重新创建了一个String对象并将新值赋予该对象,其方法ToString对性能的提高并非很显著。 因为一旦创建了该对象,就不能修改该对象的值

在处理字符串时,最好使用StringBuilder类,其.NET 命名空间是System.Text。该类并非创建新的对象,而是通过Append,Remove,Insert等方法直接对字符串进行操作,通过ToString方法返回操作结果,因此,当你需要大量拼接、删除、修改字符串使用 StringBuilder 可以优化性能


http://www.cnblogs.com/monday/archive/2007/04/19/719649.html
http://www.cnblogs.com/ljhong/archive/2008/09/25/1298779.html
koukoujiayi 2009-01-04
  • 打赏
  • 举报
回复
string a="1"; //这一句是在内存中分配了一个空间,或者更专业的说法,是在堆中创建了一个a对象;
a="2"; //这一句又在内存中分配了一个空间,或者更专业的说法,又在堆中创建了一个a对象;
//原来的a对象作废(即没有指向),以后作为垃圾回收
所以说频繁的操作string理论上来说是非常耗开销的!!

而StringBuilde不存在这个问题,例如:
StringBuilder a = "1"; //在堆中创建了一个对象a!!
a = "2"; //继续使用堆中的a对象,
//这两条只使用堆中的一个对象



niitnanfeng 2009-01-04
  • 打赏
  • 举报
回复
msdn 里有详细的说明,涉及到装箱和拆箱。你自己去那查查,有详细的讲解。
我姓区不姓区 2009-01-04
  • 打赏
  • 举报
回复
String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。


thousandlin 2009-01-04
  • 打赏
  • 举报
回复
学习
xiaoyuzi 2009-01-04
  • 打赏
  • 举报
回复
String类存在一个问题:重复修改给定的字符串,效率会很低。实际修改字符串是创建了一个新的字符串。为解决这个问题,Microsoft提供了StringBuilder,StringBuilder不像String那样支持非常多的方法,但是他的工作方式非常高效。StringBuilder通常分配的内存会比需要的要多
doney_dongxiang 2009-01-04
  • 打赏
  • 举报
回复
大量 字符传拼接 时,使用,效率比较高
zhuanshen712 2009-01-04
  • 打赏
  • 举报
回复
当要连接的字符串比较长或者比较频繁时,用stringbuilder,其它的时候随便。
zhxhdean 2009-01-04
  • 打赏
  • 举报
回复
如果很长的字符串拼接,那就用stringbulid,字符串不长用string
qian6688099 2009-01-04
  • 打赏
  • 举报
回复
StringBuilder运行效率比string运行效率高
makeppy 2009-01-04
  • 打赏
  • 举报
回复
again
makeppy 2009-01-04
  • 打赏
  • 举报
回复
没有回答,自己up

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧