在C#中,字符串是用于表示文本的一系列字符。它可以是字符,單詞 或 用雙引號“引起來的長段落。以下是字符串文字。
"S" "String" "This is a string."
C#提供String數(shù)據(jù)類型來存儲字符串字面量。可以聲明字符串類型的變量并分配字符串字面量,如下所示。
string ch = "S"; string word = "String"; string text = "This is a string.";
字符串對象在內(nèi)存中的最大大小為2GB,約為10億字符。然而,在實際應(yīng)用中,它對計算機(jī)的CPU和內(nèi)存的依賴較少。
有兩種方法可以在C#中聲明字符串變量。使用 System.String 類和 string 關(guān)鍵字。兩者是相同的,沒有區(qū)別。
string str1 = "Hello"; // 使用字符串關(guān)鍵字 String str2 = "Hello"; // 使用System.String類
在C#中,字符串是字符的集合或數(shù)組。因此,可以使用char數(shù)組創(chuàng)建字符串,也可以像char數(shù)組一樣訪問字符串。
char[] chars = {'H','e','l','l','o'}; string str1 = new string(chars); String str2 = new String(chars); foreach (char c in str1) { Console.WriteLine(c); }
現(xiàn)實世界中的文本可以包含任何字符。 在C#中,因為字符串用雙引號引起來,所以它不能在字符串中包含(”)。以下內(nèi)容將給出編譯時錯誤。
string text = "This is a "string" in C#.";
C#在這些特殊字符之前將轉(zhuǎn)義字符\(反斜杠)包括在字符串中。
在雙引號前使用反斜杠\和一些特殊字符(如\、\n、\r、\t等)將其包含在字符串中。
string text = "This is a \"string\" in C#."; string str = "xyzdef\\rabc"; string path = "\\\\mypc\\ shared\\project";
但是,為每個特殊字符加上\將非常繁瑣。用@前綴的字符串表示應(yīng)將其視為字面量,并且不能轉(zhuǎn)義任何字符。
string str = @"xyzdef\rabc"; string path = @"\\mypc\shared\project"; string email = @"[email protected]";
使用 @ 和 \ 聲明多行字符串。
string str = @"this is a \ multi line \ string";
請注意,在字符串中必須使用反斜杠才能允許出現(xiàn)雙引號 ”。@僅適用于C#中的特殊字符。
string text = @"This is a "string." in C#."; // 錯誤 string text = @"This is a \"string\" in C#."; // 錯誤 string text = "This is a \"string\" in C#."; // 有效
多個字符串可以用 + 運算符連接。
string name = "Mr." + "James " + "Bond" + ", Code: 007"; string firstName = "James"; string lastName = "Bond"; string code = "007"; string agent = "Mr." + firstName + " " + lastName + ", Code: " + code;
字符串在C#中是不可變的。這意味著它是只讀的,一旦在內(nèi)存中創(chuàng)建就無法更改。每次串聯(lián)字符串時,.NET CLR都會為串聯(lián)的字符串創(chuàng)建一個新的內(nèi)存位置。因此,如果串聯(lián)五個以上的字符串,建議使用StringBuilder而不是字符串。
字符串插值是連接字符串的更好方法。我們使用+符號將字符串變量與靜態(tài)字符串連接在一起。
C#6包含一個特殊字符$,用于標(biāo)識插值的字符串。插值字符串是靜態(tài)字符串和字符串變量的混合,其中字符串變量應(yīng)放在{}括號中。
string firstName = "James"; string lastName = "Bond"; string code = "007"; string fullName = $"Mr. {firstName} {lastName}, Code: {code}";
在上述插值示例中,$表示插值的字符串,而{}包括要與字符串合并的字符串變量。
使用兩個大括號“{{”或“}}”在字符串中包含 { 或 } 。