程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 談String與StringBuilder的性能

談String與StringBuilder的性能

編輯:關於C語言

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,見如下代碼:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved