回答
老实说,最后说些不寻常的东西真的没关系。差异非常小,您不应该在乎这一点,您应该将时间投入其他有所作为的事情上。
查看Jeff的这篇文章,其中解释了所有这些内容(还在Web环境中创建StackOverflow时)。
Coding horror article about why does not matter how do you create strings
伟大的观点。但是,你能解释我关于不可改变的事情,我只是不明白它。提前感谢。 – Shilpa 2011-03-31 07:10:10
我读过,当你预测有多于6个连接时,Microsoft建议使用StringBuilder。
每当你执行附加文本时,你应该总是使用stringbuilder。
使用字符串会反复创建字符串的新实例,因此效率低下。
感谢您的链接。 – Shilpa 2011-03-31 07:04:49
StringBuilder
是要走的路。 A String
持有对不可变(固定)字符串的引用,并且追加到字符串的效率非常低。如果你的意图是重复执行追加,那么这正是StringBuilder
的设计目的。
不可变,这意味着对字符串的任何更改都会导致运行时创建新字符串并放弃旧字符串。 – 2011-03-31 06:54:38
@rob:是的 - 这就是我的意思 - 但你的解释更清晰! – 2011-03-31 09:56:41
感谢您的解释。 :) – Shilpa 2011-04-04 11:47:32
当多个字符串连接为 时,可以使用字符串bulider。 StringBuilder更高效,因为它的确包含一个可变字符串缓冲区。 .NET字符串是不可变的 这就是为什么每当我们改变它(插入,追加,删除等)时,创建一个新字符串对象的原因 。
Thanks.Is对我们项目中的hw有很多次限制,我们可以使用字符串生成器? – Shilpa 2011-03-31 07:02:10
如果您更改字符串(添加,删除,更改,替换字符),您应该使用StringBuilder,因为它更有效。如果你只是简单的操作,你应该使用字符串。
与string的问题是,它是不变的,所以operatrion
string text = myStringVariable + "new string"
导致该文本变量的新实例将被创建。如果你对字符串类做了很多操作,那么你将会有很多字符串对象的实例。
- 1. bash之间的原始字符串和字符串之间的差异
- 2. 字符串和字符串生成器
- 3. 点符号和基于字符串的IP之间的差异
- 4. 常规字符串和模板字符串之间的性能差异?
- 5. 字符串差异
- 6. JS:组成的字符串与直接字符串的差异
- 7. 提取字符串,字符串X和字符串之间ÿ
- 8. 2字符串之间的字符串
- 9. 基于性能的零和空字符串之间的差异
- 10. 字符串生成器和字典
- 11. 差B/W字符串和字符串
- 12. 是否有字符串之间的“一”和字符“A”大小差异?
- 13. 将字符串生成器拆分为字符串字符串特定字符
- 14. 在字节之间发送字符串之间的字符串
- 15. 字符串插值和字符串串联之间的区别
- 16. JavaScript字符串差异
- 17. Objective-C字符串差异
- 18. 字符串差异php
- 19. TSQL字符串差异度
- 20. 生成字符串
- 21. 在字符串和类名字之间施放字符串
- 22. 字符串生成器VS串
- 23. 二进制字符串,字节字符串,unicode字符串和普通字符串(str)之间的区别
- 24. 差异WIN32和其他C字符串
- 25. Ruby 1.8和1.9字符串差异
- 26. “\(字符串)”和字符串之间的区别?
- 27. 字符串[]和[字符串]之间的区别
- 28. 差(字符串)
- 29. 替换字符串之间的字符
- 30. 查找两个字符串之间的差异位置
ATLEAST办给予好评,如果你喜欢的答案建议 – 2011-04-04 11:27:59
好吧感谢。 :) – Shilpa 2011-04-04 11:46:02