016-可變字符串字符StringBuilder

016-可變字符串字符StringBuilder

StringBuilder 類
表示可變字符字符串。 無法繼承此類。
此類表示一個類似字符串的對象,其值爲可變字符序列。
繼承 Object StringBuilder
屬性 ComVisibleAttribute SerializableAttribute
實現 ISerializable

String 和 StringBuilder 類型

儘管 StringBuilder 和 String 都表示字符序列,但它們的實現方式不同。 String 是不可變類型。 也就是說,出現用於修改 String 對象的每個操作實際上會創建一個新字符串。

重要
儘管 StringBuilder 類通常比 String 類提供更好的性能,但在每次需要操作字符串時,不應自動將 String 替換爲 StringBuilder。 性能取決於字符串的大小、要爲新字符串分配的內存量、正在執行應用程序的系統以及操作的類型。 應該準備好測試應用程序,以確定 StringBuilder 實際上是否提供顯著的性能改進。

請考慮在以下情況下使用 String 類:

  • 當你的應用將對字符串進行的更改數量很小時。 在這些情況下,StringBuilder 可能會對 String提供可忽略或不會提高性能。
  • 當你執行固定數量的串聯操作時,尤其是字符串文本。 在這種情況下,編譯器可能會將串聯操作合併爲單個操作。
  • 在生成字符串時,必須執行大量的搜索操作。 StringBuilder 類缺少搜索方法,如 IndexOf 或 StartsWith。 您必須將 StringBuilder 對象轉換爲這些操作的 String,這可能會使使用 StringBuilder時的性能優勢抵消。

請考慮在以下情況下使用 StringBuilder 類:

  • 希望應用在設計時對字符串進行未知數量的更改(例如,當使用循環來連-接包含用戶輸入的隨機數量的字符串時)。
  • 希望應用對字符串進行大量更改時。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章