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 類:
- 希望應用在設計時對字符串進行未知數量的更改(例如,當使用循環來連-接包含用戶輸入的隨機數量的字符串時)。
- 希望應用對字符串進行大量更改時。