C# 字串(String)
在 C# 中,您可以使用字元陣列來表示字串,但是,更常見的做法是使用 string 關鍵字來宣告一個字串變數。 string 關鍵字是 System.String 類別的別名。
建立String 物件
您可以使用以下方法之一來建立string 物件:
透過給String 變數指定字串
透過使用String 類別建構子
透過使用字串串聯運算子( + )
##透過檢索屬性或呼叫一個傳回字串的方法 透過格式化方法來轉換一個值或物件為它的字串表示形式 |
using System; namespace StringApplication { class Program { static void Main(string[] args) { //字符串,字符串连接 string fname, lname; fname = "Rowan"; lname = "Atkinson"; string fullname = fname + lname; Console.WriteLine("Full Name: {0}", fullname); //通过使用 string 构造函数 char[] letters = { 'H', 'e', 'l', 'l','o' }; string greetings = new string(letters); Console.WriteLine("Greetings: {0}", greetings); //方法返回字符串 string[] sarray = { "Hello", "From", "Tutorials", "Point" }; string message = String.Join(" ", sarray); Console.WriteLine("Message: {0}", message); //用于转化值的格式化方法 DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1); string chat = String.Format("Message sent at {0:t} on {0:D}", waiting); Console.WriteLine("Message: {0}", chat); Console.ReadKey() ; } } }###當上面的程式碼被編譯和執行時,它會產生下列結果:###
Full Name: RowanAtkinson Greetings: Hello Message: Hello From Tutorials Point Message: Message sent at 17:58 on Wednesday, 10 October 2012###String 類別的屬性#### ##String 類別有以下兩個屬性:###############序號#######屬性名稱& 描述###########1# ########Chars######在目前###String### 物件中取得###Char### 物件的指定位置。 ############2#########Length######在目前的 ###String### 物件中取得字元數。 ############
String 類別的方法
String 類別有許多方法用於 string 物件的運算。下面的表格提供了一些最常用的方法:
序號 | 方法名稱 & 說明 |
---|---|
1 | public static int Compare(
string strA,
string strB
) 比較兩個指定的 string 對象,並傳回一個表示它們在排列順序中相對位置的整數。此方法區分大小寫。 |
2 | public static int Compare(
string strA,
string strB,
bool ignoreCase
) 比較兩個指定的 string 對象,並傳回一個表示它們在排列順序中相對位置的整數。但是,如果布林參數為真時,則該方法不區分大小寫。 |
3 | public static string Concat(
string str0,
string str1
) 連接兩個 string 物件。 |
4 | public static string Concat(
string str0,
string str1,
string str2
) 連接三個 string 物件。 |
5 | public static string Concat(
string str0,
string str1,
string str2,
string str3
) 連接四個 string 物件。 |
6 | public bool Contains(
string value
) 傳回一個表示指定 string 物件是否出現在字串中的值。 |
7 | public static string Copy(
string str
) 建立一個與指定字串具有相同值的新的 String 物件。 |
8 | public void CopyTo(
int sourceIndex,
char[] destination,
int destinationIndex,
int count
) 從 string 物件的指定位置開始複製指定數量的字元到 Unicode 字元陣列中的指定位置。 |
9 | public bool EndsWith(
string value
) 判斷 string 物件的結尾是否符合指定的字串。 |
10 | public bool Equals(
string value
) 判斷目前的 string 物件是否與指定的 string 物件具有相同的值。 |
11 | public static bool Equals(
string a,
string b
) 判斷兩個指定的 string 物件是否具有相同的值。 |
12 | public static string Format(
string format,
Object arg0
) 把指定字串中一個或多個格式項目替換為指定物件的字串表示形式。 |
13 | public int IndexOf(
char value
) 傳回指定 Unicode 字元在目前字串中第一次出現的索引,索引從 0 開始。 |
14 | public int IndexOf(
string value
) 傳回指定字串在該實例中第一次出現的索引,索引從 0 開始。 |
15 | public int IndexOf(
char value,
int startIndex
) 傳回指定 Unicode 字元從該字串中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。 |
16 | public int IndexOf(
string value,
int startIndex
) 傳回指定字串從該實例中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。 |
17 | public int IndexOfAny(
char[] anyOf
) 傳回某一個指定的 Unicode 字元陣列中任意字元在該實例中第一次出現的索引,索引從 0 開始。 |
18 | public int IndexOfAny(
char[] anyOf,
int startIndex
) 傳回某一個指定的 Unicode 字元陣列中任意字元從該實例中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。 |
19 | public string Insert(
int startIndex,
string value
) 傳回一個新的字串,其中,指定的字串被插入在目前 string 物件的指定索引位置。 |
20 | public static bool IsNullOrEmpty(
string value
) 指示指定的字串是否為 null 或是否為一個空的字串。 |
21 | public static string Join(
string separator,
params string[] value
) 連接一個字串陣列中的所有元素,使用指定的分隔符號分隔每個元素。 |
22 | public static string Join(
string separator,
string[] value,
int startIndex,
int count
) 連接接一個字串陣列中的指定位置開始的指定元素,使用指定的分隔符號分隔每個元素。 |
23 | public int LastIndexOf(
char value
) 傳回指定 Unicode 字元在目前 string 物件中最後一次出現的索引位置,索引從 0 開始。 |
24 | public int LastIndexOf(
string value
) 傳回指定字串在目前 string 物件中最後一次出現的索引位置,索引從 0 開始。 |
25 | public string Remove(
int startIndex
) 移除目前實例中的所有字符,從指定位置開始,一直到最後一個位置為止,並傳回字串。 |
26 | public string Remove(
int startIndex,
int count
) 從目前字串的指定位置開始移除指定數量的字符,並傳回字串。 |
27 | public string Replace(
char oldChar,
char newChar
) 把目前 string 物件中,所有指定的 Unicode 字元替換為另一個指定的 Unicode 字符,並傳回新的字串。 |
28 | public string Replace(
string oldValue,
string newValue
) 把目前 string 物件中,所有指定的字串替換為另一個指定的字串,並傳回新的字串。 |
29 | public string[] Split(
params char[] separator
) 傳回字串數組,包含目前的 string 物件中的子字串,子字串是使用指定的 Unicode 字元數組中的元素進行分隔的。 |
30 | public string[] Split(
char[] separator,
int count
) 傳回字串數組,包含目前的 string 物件中的子字串,子字串是使用指定的 Unicode 字元數組中的元素進行分隔的。 int 參數指定要傳回的子字串的最大數目。 |
31 | public bool StartsWith(
string value
) 判斷字串實例的開頭是否符合指定的字串。 |
32 | public char[] ToCharArray() 傳回一個帶有目前 string 物件中所有字元的 Unicode 字元陣列。 |
33 | public char[] ToCharArray(
int startIndex,
int length
) 傳回一個帶有目前 string 物件中所有字元的 Unicode 字元數組,從指定的索引開始,直到指定的長度為止。 |
34 | public string ToLower() 把字串轉換成小寫並回傳。 |
35 | public string ToUpper() 把字串轉換為大寫並回傳。 |
36 | public string Trim() 移除目前 String 物件中的所有前導空白字元和後置空白字元。 |
上面的方法清單並不詳盡,請造訪 MSDN 函式庫,查看完整的方法清單和 String 類別建構子。
實例
下面的實例示範了上面提到的一些方法:
#比較字串
using System; namespace StringApplication { class StringProg { static void Main(string[] args) { string str1 = "This is test"; string str2 = "This is text"; if (String.Compare(str1, str2) == 0) { Console.WriteLine(str1 + " and " + str2 + " are equal."); } else { Console.WriteLine(str1 + " and " + str2 + " are not equal."); } Console.ReadKey() ; } } }
當上面的當程式碼被編譯和執行時,它會產生下列結果:
This is test and This is text are not equal.
字串包含字串:
using System; namespace StringApplication { class StringProg { static void Main(string[] args) { string str = "This is test"; if (str.Contains("test")) { Console.WriteLine("The sequence 'test' was found."); } Console.ReadKey() ; } } }
當上面的程式碼被編譯和執行時,它會產生下列結果:
The sequence 'test' was found.
取得子字串:
#範例
##using System; namespace StringApplication { class StringProg { static void Main(string[] args) { string str = "Last night I dreamt of San Pedro"; Console.WriteLine(str); string substr = str.Substring(23); Console.WriteLine(substr); Console.ReadKey() ; } } }
運行實例»點擊"運行實例" 按鈕查看線上實例
Last night I dreamt of San Pedro San Pedro
連接字串:
using System; namespace StringApplication { class StringProg { static void Main(string[] args) { string[] starray = new string[]{"Down the way nights are dark", "And the sun shines daily on the mountain top", "I took a trip on a sailing ship", "And when I reached Jamaica", "I made a stop"}; string str = String.Join("\n", starray); Console.WriteLine(str); Console.ReadKey() ; } } }當上面的程式碼被編譯和執行時,它會產生下列結果:
Down the way nights are dark And the sun shines daily on the mountain top I took a trip on a sailing ship And when I reached Jamaica I made a stop