程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 語言標准--2.4.4.5 字符串

C# 語言標准--2.4.4.5 字符串

編輯:C#入門知識

C# 支持兩種形式的字符串:規則字符串和逐字字符串。

規則字符串由包含在雙引號中的零個或多個字符組成(如 "hello"),並且可以包含簡單轉義序列(如表示制表符的 \t)、十六進制轉義序列和 Unicode 轉義序列。

逐字字符串由 @ 字符後跟開始的雙引號字符、零個或多個字符以及結束的雙引號字符組成。一個簡單的示例就是 @"hello"。在逐字字符串中,分隔符之間的字符逐字解釋,唯一的例外是“引號轉義序列”。具體說來,在逐字字符串中不處理簡單轉義序列以及十六進制和 Unicode 轉義序列。逐字字符串可以跨多行。

string-literal:(字符串:)
regular-string-literal(規則字符串)
verbatim-string-literal(逐字的字符串)
regular-string-literal:(規則字符串:)
"   regular-string-literal-charactersopt   "("   規則字符串字符可選   ")
regular-string-literal-characters:(規則字符串字符:)
regular-string-literal-character(規則字符串字符)
regular-string-literal-characters   regular-string-literal-character(規則字符串字符   規則字符串字符)
regular-string-literal-character:(規則字符串字符:)
single-regular-string-literal-character(單個規則字符串字符)
simple-escape-sequence(簡單轉義序列)
hexadecimal-escape-sequence(十六進制轉義序列)
unicode-escape-sequence(unicode 轉義序列)
single-regular-string-literal-character:(單個規則字符串字符:)
除 " (U+0022)、\ (U+005C) 和換行符外的任何字符
verbatim-string-literal:(逐字的字符串:)
@"   verbatim -string-literal-charactersopt   "(@"   逐字的字符串字符可選   ")
verbatim-string-literal-characters:(逐字的字符串字符:)
verbatim-string-literal-character(逐字的字符串字符)
verbatim-string-literal-characters   verbatim-string-literal-character(逐字的字符串字符   逐字的字符串字符)
verbatim-string-literal-character:(逐字的字符串字符:)
single-verbatim-string-literal-character(單個逐字的字符串字符)
quote-escape-sequence(引號轉義序列)
single-verbatim-string-literal-character:(單個逐字的字符串字符:)
除 " 外的任何字符
quote-escape-sequence:(引號轉義序列:)
""

規則字符串字符中跟在反斜槓字符 (\) 後面的字符必須是下列字符之一:'"\0abfnrtuUxv。否則將發生編譯時錯誤。

示例

string a = "hello, world";                  // hello, world



string b = @"hello, world";               // hello, world



string c = "hello \t world";               // hello     world



string d = @"hello \t world";               // hello \t world



string e = "Joe said \"Hello\" to me";      // Joe said "Hello" to me



string f = @"Joe said ""Hello"" to me";   // Joe said "Hello" to me



string g = "\\\\server\\share\\file.txt";   // \\server\share\file.txt



string h = @"\\server\share\file.txt";      // \\server\share\file.txt



string i = "one\r\ntwo\r\nthree";



string j = @"one



two



three";

顯示了各種不同的字符串。最後一個字符串 j 是跨多行的逐字字符串。引號之間的字符(包括空白,如換行符等)也逐字符保留。

由於十六進制轉義序列可以包含數目可變的十六進制數字,因此字符串 "\x123" 只包含一個具有十六進制值 123 的字符。若要創建一個包含具有十六進制值 12 的字符,後跟一個字符 3 的字符串,可以改寫為 "\x00123""\x12" + "3"

“字符串”的類型為 string

[1] [2] 下一頁  

每個字符串不一定產生新的字符串實例。當根據字符串相等運算符(第 7.9.7 節)確認為相等的兩個或更多個字符串出現在同一個程序集中時,這些字符串引用相同的字符串實例。例如,

class Test



{



   static void Main() {



      object a = "hello";



      object b = "hello";



      System.Console.WriteLine(a == b);



   }



}

產生的輸出為 True,這是因為兩個字符串引用相同的字符串實例。



 

上一頁  [1] [2] 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved