67. StringBuilder和String 的區別?

晚綣發表於2021-01-05

a. String 在進行運算時(如賦值、拼接等)會產生一個新的例項,而 StringBuilder 則不 會。所以在大量字串拼接或頻繁對某一字串進行操作時最好使用 StringBuilder,不要使用String
b. 如果要操作一個不斷增長的字串,儘量不用 String 類,改用 StringBuilder 類。
c. 兩個類的工 作原理不同:String 類是一種傳統的修改字串的方式,它確實可以完成把一個字串新增到 另一個字串上的工作沒錯,但是在.NET 框架下,這個操作實在是划不來。因為系統先是把 兩個字串寫入記憶體,接著刪除原來的 String 物件,然後建立一個 String 物件,並讀取記憶體 中的資料賦給該物件。這一來二去的,耗了不少時間。而使用 System.Text 命 名空間下面的 StringBuilder 類就不是這樣了,它提供的 Append 方法,能夠在已有物件的原地進行字串 的修改,簡單而且直接
d. 一般情況下覺察不到這二者效率的差異,但如果你要對某個 字串進行大量的新增操作,那麼 StringBuilder 類所耗費的時間和 String 類簡直不是一個數量級的。

相關文章