字元串是日常編碼中最常用的引用類型了,可能沒有之一,加上字元串的不可變性、駐留性,很容易產生性能問題,因此必須全面瞭解一下。 ...
字元串是日常編碼中最常用的引用類型了,可能沒有之一,加上字元串的不可變性、駐留性,很容易產生性能問題,因此必須全面瞭解一下。
01、字元與字元編碼
1.1、字元Char
字元 char 表示為 Unicode字元,在C#中用 UTF-16 編碼表示,占用2個位元組(16位)大小,字面量用單引號''
包裹。
char c = 'A';
Console.WriteLine(char.IsDigit('3'));
Console.WriteLine(char.IsNumber('1'));
Console.WriteLine(char.IsLetter('A'));
Console.WriteLine(char.IsLower('a'));
Console.WriteLine(char.IsUpper('A'));
Console.WriteLine(char.GetUnicodeCategory('A')); //獲取字元分類
- char 是值類型(結構體),以16位整數形式存儲,
char
可隱式轉換為int
。 - 字元串可以看做是
char
序列(數組),字元串是引用類型。
string str = "Hello World";
Console.WriteLine(str[0]); //H
Console.WriteLine(str[10]); //d
Console.WriteLine(str[0].GetType().Name); //Char
1.2、字元集Unicode與字元編碼
一般情況下字元串長度string.Length
就是可見的文本字元數量,但這並不絕對相等。大多數字元都是一個char組成,然而有些字元無法用一個char表示,如表情、不常用字元等,他們會用兩個char(4個位元組)來表示。
"a".Length.Dump(); //1
"