C# 之 String類常用方法彙總

String類表示文本,即一系列 Unicode 字符。 位於命名空間System中。 字符串是 Unicode
字符的有序集合,用於表示文本。String對象是 System. Char 對象的有序集合,用於表示字符串。String
對象的值是該有序集合的內容,並且該值是不可變的。

1.Equals方法

Equals方法有多種重載方式,實現按照一定規則確定兩個String實例是否具有相同的值。

 String str1 = "Czhenya";
 String str2 = "czhenya";

 //參數是object類型
 Console.WriteLine(str1.Equals(str2));           //輸出:False
 // 比較str1和str2
 Console.WriteLine(String.Equals(str1,str2));    //輸出:False
 // 比較str1和str2不區分大小寫
 Console.WriteLine(String.Equals(str1,str2, StringComparison.OrdinalIgnoreCase)); 
 //輸出:True
---
# 2.Concat方法
**Concat方法有多種重載方式,實現對指定的字符串或對象的連接操作。**

```csharp
  String s1 = "C";
  String s2 = "Zhen";
  String s3 = "Ya";
  String s4 = "_CSDN";
  // 這種寫法最多支持連接四個字符串
  Console.WriteLine(String.Concat(s1, s2));           //輸出:CZhen          
  Console.WriteLine(String.Concat(s1, s2, s3, s4));   //輸出:CZhenYa_CSDN
  // 還有三個object爲參數類型的重載
  Console.WriteLine(String.Concat(s1, 1, '2', 0.3f)); //輸出:C120.3

  // 連接字符串數組
  String[] strArr = { "A", "BC", "DEF", "GH", "IJKL" };
  Console.WriteLine(String.Concat(strArr));     //輸出:ABCDEFGHIJKL

3.Contains方法

返回一個bool值,該值指示指定的 String 對象是否出現在此字符串中。

 String str1 = "Czhenya";
 String str2 = "Czhenya_CSDN";

 // str1是否包含str2 (區分大小寫)  --> 或者理解爲str2是否是str1的字串
 Console.WriteLine(str1.Contains(str2));     //輸出:False
 Console.WriteLine(str2.Contains(str1));     //輸出:True
 // 參數是char類型的重載
 Console.WriteLine(str1.Contains('c'));     //輸出:False
 Console.WriteLine(str1.Contains('C'));     //輸出:True

4.StartsWith和EndsWith方法

返回一個Boolean值,確定此字符串實例的開始/結尾是否與指定的字符串匹配。

 String str1 = "Czhenya";
 String str2 = "Czhenya_CSDN";
 
 //str1是否是以str2開始的
 Console.WriteLine(str1.StartsWith(str2));     //輸出:False
 Console.WriteLine(str1.StartsWith('C'));      //輸出:True

 Console.WriteLine(str2.StartsWith(str1));     //輸出:True
 Console.WriteLine(str2.StartsWith('c'));      //輸出:False

5.Compare方法

Compare方法有多種重載方式,實現對兩個字符串按照指定規則、指定範圍的比較操作,方法返回值爲一個整數,用以描述兩個字符串的排序中的相對位置。

String str1 = "czhenya";
String str2 = "Czhenya_CSDN";

//參數:字符串1,字符串2,是否區分大小寫
Console.WriteLine(String.Compare(str1, str2));       //輸出:-1
Console.WriteLine(String.Compare(str1, str2, true)); //輸出:-1

//參數:字符串1,str1開始索引,字符串2,str2開始索引,比較長度,是否區分大小寫
Console.WriteLine(String.Compare(str1, 0, str2, 0, 7));       //輸出:-1
Console.WriteLine(String.Compare(str1, 0, str2, 0, 7, true)); //輸出:0


# 6.ToLower 方法和ToUpper方法
**將字符串中字符轉變爲小寫形式,或轉換爲大寫形式。**

```csharp
  String str1 = "Czhenya";
  String str2 = "czhenya";
  
  Console.WriteLine(str1.ToLower());    //輸出:czhenya
  Console.WriteLine(str2.ToUpper());    //輸出:CZHENYA

7.Substring方法

Substring有兩種重載方式,實現按照指定起始位置和指定長度對字符串取子串的功能。

 String str1 = "Czhenya";
 //參數:開始索引
 Console.WriteLine(str1.Substring(2));     //輸出:henya
 //參數:開始索引,截取長度
 Console.WriteLine(str1.Substring(0, 2));  //輸出:Cz

8.Split方法

Split, 實現按照指定字符對字符串進行分割形成多個子串的功能。

    //使用下劃線"_"分隔字符串
    String str2 = "Czhenya_C_S_D_";
    string[] res2 = str2.Split('_');
    for (int i = 0; i < res2.Length; i++)
    {
          Console.Write(res2[i] + "..."); // 輸出:Czhenya...C...S...D......
    }
    Console.WriteLine();
    // 默認參數:StringSplitOptions.None :返回值包括包含空字符串的數組元素。
    // StringSplitOptions.RemoveEmptyEntries:返回值不包括包含空字符串的數組元素。
    string[] res3 = str2.Split('_', StringSplitOptions.RemoveEmptyEntries);
    for (int i = 0; i < res3.Length; i++)
    {
         Console.Write(res3[i] + "..."); // 輸出:Czhenya...C...S...D...
    }
    Console.WriteLine();

    //參數: 分隔字符,分隔幾組,默認參數:StringSplitOptions.None
    string[] res4 = str2.Split('_',3);
    for (int i = 0; i < res4.Length; i++)
    {
          Console.Write(res4[i] + "..."); // 輸出:Czhenya...C...S_D_...
    }
    Console.WriteLine();

9.Replace方法

Replace方法替換此實例中指定的字符或子串。

   String str1 = "Czhenya_CSDN";
   // 使用 字符'A' 替換字符串中的 字符'C'
   Console.WriteLine(str1.Replace('C','A'));           //輸出:Azhenya_ASDN
   // 字符串"ABCD" ,替換 字符串"CSDN"
   Console.WriteLine(str1.Replace("CSDN", "ABCD"));    //輸出:Czhenya_ABCD

10.Remove方法

Remove方法刪除此實例中指定的字符。

 String str1 = "Czhenya_CSDN";
 //參數:開始移除的索引
 Console.WriteLine(str1.Remove(7));           //輸出:Czhenya
 //參數:開始移除索引,移除長度
 Console.WriteLine(str1.Remove(0,2));         //輸出:henya_CSDN

11.Trim方法

刪除字符串中所有前導空白字符和尾部空白字符。

String str1 = "  Czhenya_CSDN  ";

//除去字符串頭部的空格
Console.WriteLine("..." + str1.TrimStart() + "...");    //輸出:...Czhenya_CSDN  ...
//除去字符串尾部的空格
Console.WriteLine("..." + str1.TrimEnd() + "...");      //輸出:...  Czhenya_CSDN...
//除去字符串頭部和尾部的空格
Console.WriteLine("..." + str1.Trim() + "...");         //輸出:...Czhenya_CSDN...

12.Insert方法

Insert方法在此實例中的指定索引位置插入一個指定的String 實例。

 String str1 = "Czhenya_CSDN";

//在指定的開始索引位置之後添加指定字符串
Console.WriteLine(str1.Insert(0, "ABC"));    //輸出:ABCCzhenya_CSDN

13. IndexOf相關方法

IndexOf方法有多種重載方式,報告指定字符或字符串在此實例中指定範圍內的第一個匹配項的索引。

String str1 = "CSDN_Czhenya";

//匹配字符'C'在字符串str1中第一次出現的索引,沒有則爲-1;
Console.WriteLine(str1.IndexOf('C'));           //輸出:0
//匹配字符串str1第3個字符後字符'C'第一次出現的索引
Console.WriteLine(str1.IndexOf('C', 3));        //輸出:5
//匹配默認區分大小寫,StringComparison.OrdinalIgnoreCase:爲不區分大小寫
Console.WriteLine(str1.IndexOf('c'));           //輸出:-1
Console.WriteLine(str1.IndexOf('c', StringComparison.OrdinalIgnoreCase));        //輸出:0

Console.WriteLine(str1.IndexOf("CSDN"));        //輸出:0
Console.WriteLine(str1.IndexOf("CsDn", 0, 5));  //輸出:-1
Console.WriteLine(str1.IndexOf("CsDn", 0, 5, StringComparison.OrdinalIgnoreCase));   //輸出:0

//-----------------LastIndexOf-----------------------
//字符'C'在str1的最後一次出現的從0開始的索引位置
Console.WriteLine(str1.LastIndexOf('C'));           //輸出:5
//字符'C'在str1的最後一次出現的從3開始的索引位置
Console.WriteLine(str1.LastIndexOf('C', 3));        //輸出:0
//參數:要匹配的字符,開始索引,匹配長度  --> 需要注意的是這裏是從開始索引倒置匹配,所以索引值要大於等於匹配長度否則會報異常
Console.WriteLine(str1.LastIndexOf('C', 7, 4));     //輸出:5

IndexOfAny和LastIndexOfAny

String str1 = "CSDN_Czhenya";
char[] testArr = { 'N', 'S', 'C', 'D'};
//從字符串str1第一個字符開始(0號索引)和字符數組testArr中的元素進行匹配,匹配到了則返回當前索引
Console.WriteLine(str1.IndexOfAny(testArr));           //輸出:0
//從第四個字符開始匹配
Console.WriteLine(str1.IndexOfAny(testArr, 4));        //輸出:5
//參數:匹配字符數組,匹配在str1的開始位置,匹配長度
Console.WriteLine(str1.IndexOfAny(testArr, 4, 3));     //輸出:5

//-----------------LastIndexOfAny-----------------------
char[] testArr = { 'N', 'S', 'C', 'D'};
Console.WriteLine(str1.LastIndexOfAny(testArr));           //輸出:5
Console.WriteLine(str1.LastIndexOfAny(testArr, 4));        //輸出:3
Console.WriteLine(str1.LastIndexOfAny(testArr, 4, 3));     //輸出:3

14.IsNullOrEmpty

IsNullOrEmpty,指示指定的字符串是null還是空字符串,如果值參數爲null或空字符串,返回true;否則返回false。。

 string value1;
 string value2 = "";
 string value3 = "Czhenya";
 Console.WriteLine(String.IsNullOrEmpty(value1));  //輸出:True
 Console.WriteLine(String.IsNullOrEmpty(value2));  //輸出:True
 Console.WriteLine(String.IsNullOrEmpty(value2));  //輸出:False
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章