學習記錄
C#
字串中的每個字元都是由 Unicode 純量值所定義,也稱為 Unicode 程式碼點或 Unicode 字元的序數 (數值) 值。 每個程式碼點都是使用 UTF-16 編碼進行編碼,而編碼的每個專案的數值會以物件來表示 Char 。
字串是用來表示文字的連續字元集合。
String記憶體中物件的大小上限為 2 GB 或大約1000000000個字元。
字串的操作通常考量以下兩點:
字串物件為「不可變」:它們在建立之後將無法變更。
所有看似會修改字串的 String 方法和 C# 運算子,實際上會以新的字串物件傳回結果。
當 s1 和 s2 的內容串連以組成單一字串時,兩個原始字串將不會被修改。 += 運算子會建立新的字串,其中包含結合的內容。 新的物件會指派給變數 s1,而先前指派給 s1 的原始物件將會被釋放以進行記憶體回收,因為已經沒有其他具有其參考的變數。
因為對字串的「修改」實際上是建立新的字串,建立對字串的參考時,必須特別謹慎。 如果建立對字串的參考,然後「修改」原始字串,該參考將會繼續指向原始物件,而非修改字串時所建立的新物件。
String物件稱為「不可變」 (唯讀) ,因為它在建立之後無法修改其值。 出現來修改物件的方法,實際上會傳回 String String 包含修改的新物件。因為字串是不可變的,所以執行重複新增或刪除看似單一字串的字串操作常式,可能會對效能造成顯著的影響。
可以使用 StringBuilder 類別,而不是對 String 字串值進行多次變更之作業的類別。與類別的實例不同的 String 是,物件是可變動的 StringBuilder ; 當串連、附加或刪除字串中的子字串時,會在單一字串上執行作業。當完成修改物件的值時 StringBuilder ,可以呼叫其方法,將 StringBuilder.ToString 它轉換成字串。
StringBuilder 類別會建立一個字串緩衝區,能在程式執行許多字串操作的情況下提供較佳的效能。 StringBuilder 字串也可重新指派內建字串資料類型所不支援的個別字元。
除了StringBuilder的串接字串,下列 String 方法可用於字串串連:
String.Format方法會使用複合格式功能,以某個物件或值的字串表示,取代字串中的一個或多個預留位置。 Format方法通常用來執行下列作業: