1. 程式人生 > 實用技巧 >C#字串

C#字串

C#字串(String)

在 C# 中,可以使用字元陣列來表示字串,但是,更常見的做法是使用string關鍵字來宣告一個字串變數。string 關鍵字是System.String類的別名。

建立 String 物件

可以使用以下方法之一來建立 string 物件:

  • 通過給 String 變數指定一個字串
  • 通過使用 String 類建構函式
  • 通過使用字串串聯運算子( + )
  • 通過檢索屬性或呼叫一個返回字串的方法
  • 通過格式化方法來轉換一個值或物件為它的字串表示形式

下面的例項演示了這點:

 string strA = "Hello";
            string strB = "World
"; string strC = strA + strB + "."; Console.WriteLine(strC); //建構函式 char[] letters = { 'W', 'H', 'A', 'T' }; string msg = new string(letters); Console.WriteLine(msg); string[] something = { "Need", "Not", "To", "Know" };
string message = String.Join(" ", something); Console.WriteLine(message); DateTime current = new DateTime(2020, 8, 7, 14, 05, 30); string chat = String.Format($"Current is {current}"); Console.WriteLine(chat);

執行結果↓

HelloWorld.
WHAT
Need Not To Know
Current 
is 2020/8/7 14:05:30

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, 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 類建構函式。

例項

下面的例項演示了上面提到的一些方法:

            //methods
            Console.WriteLine(String.Concat("K","I","D"));
            String str = "Hello World.";
            Console.WriteLine(str.Contains("Hello"));
            String copyStr = String.Copy(str);
            Console.WriteLine(copyStr);
            char[] fileName= { 'A', 'B', 'N', 'D', 'O', 'N', ' ', ' ', ' ', ' ' };
            String suffix= ".mp4";
            suffix.CopyTo(0, fileName, fileName.Length-4,4);
            String name=(new String(fileName));
            Console.WriteLine(name);
            Console.WriteLine(name.EndsWith("mp4"));
            Console.WriteLine(str.Equals("Hello World."));
            Console.WriteLine(String.Equals("A","a"));
            Console.WriteLine(string.Format("{0:yyyy年MM月dd日}", new DateTime(2020, 8, 7)));
            Console.WriteLine(str.IndexOf("o"));
            Console.WriteLine(str.IndexOf("o", str.IndexOf("o")+1));
            int index = str.IndexOfAny(fileName);
            Console.WriteLine($"{str} index of any fileName with “{str[index]}”");
KID
True
Hello World.
ABNDON.mp4
True
True
False
2020年08月07日
4
7
Hello World. index of any fileName with “.”