回答
老實說,最後說些不尋常的東西真的沒關係。差異非常小,您不應該在乎這一點,您應該將時間投入其他有所作爲的事情上。
查看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. 查找字符串之間的差異
- 4. 等字符串之間的差異
- 5. 點符號和基於字符串的IP之間的差異
- 6. 常規字符串和模板字符串之間的性能差異?
- 7. 在PHP中找到Orignal字符串和編輯字符串之間的差異?
- 8. 字符串差異
- 9. JS:組成的字符串與直接字符串的差異
- 10. 提取字符串,字符串X和字符串之間ÿ
- 11. 2字符串之間的字符串
- 12. 字符串生成器和字典
- 13. 基於性能的零和空字符串之間的差異
- 14. 差B/W字符串和字符串
- 15. 字符串()和+之間的類型差異
- 16. 紅寶石1.8和1.9之間的字符串長度差異
- 17. 是否有字符串之間的「一」和字符「A」大小差異?
- 18. 將字符串生成器拆分爲字符串字符串特定字符
- 19. 問題與java字符串和字符串生成器
- 20. 在字節之間發送字符串之間的字符串
- 21. 字符串插值和字符串串聯之間的區別
- 22. 字符串差異php
- 23. JavaScript字符串差異
- 24. Objective-C字符串差異
- 25. TSQL字符串差異度
- 26. JavaScript - 兩個時間字符串之間的差異
- 27. 生成字符串
- 28. 生成字符串
- 29. 生成字符串
- 30. 字符串X,Y之間的區別;和字符串X,字符串Y;
ATLEAST辦給予好評,如果你喜歡的答案建議 – 2011-04-04 11:27:59
好吧感謝。 :) – Shilpa 2011-04-04 11:46:02