C#幾種截取字符串的方法(split 、Substring、Replace、remove)

C#截圖字符串經常使用的方法有 split 、Substring、Replace、remove等。數組

split的使用:  性能

1. Split( Char ()) spa

    返回的字符串數組包含此實例中的子字符串(由指定 Unicode 字符數組的元素分隔)。code

    根據單個分隔字符用split截取。 對象

    例如 複製代碼代碼以下: blog

 1 string st="GT123_1"; 2 string[] sArray=st.Split(‘_’);// 必定是單引  排序

    便可獲得sArray[0]="GT123",sArray[1]="1"; 內存

2.利用多個字符來分隔字符串 rem

    例如 複製代碼代碼以下: 字符串

1     string str = "GTAZB_JiangjBen_123"; 
2     string[] sArray = str.Split(new char[2] { 'j', '_' }); 
3     foreach(string e in sArray) 
4     { Console.WriteLine(e); } 

    獲得sArray[0]="GTAZB",sArray[1]="Jiang",sArray[2]="Ben",sArray[3]="123"; 

3.Split( String (), StringSplitOptions) 

   返回的字符串數組包含此字符串中的子字符串(由指定字符串數組的元素分隔)。參數指定是否返回空數組元素。             RemoveEmptyEntries表示要省略返回的數組中的空數組元素 

   根據字符串或字符串組來截取字符串 

   例如 複製代碼代碼以下: 

1    string str = "GTAZB_JiangjBen_123"; 
2    string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries); 
3    foreach(string e in sArray) 
4   { Console.WriteLine(e); } 

   獲得sArray[0]="GTAZB_",sArray[1]="ang",sArray[2]="en_123"; 

 其餘:

public string[] Split(params char[] separator)
Split 方法提取此字符串中的子字符串,這些子字符串由 separator 參數中的一個或多個字符串分隔,而後該方法將這些子字符串做爲數組的元素返回。 Split 方法使用區分大小寫的序號排序規則執行比較,從而查找分隔符。
Split 方法忽略 separator 的任何值爲 Nothing 或空字符串 ("") 的元素。 爲了在 separator 中的字符串具備公共字符的狀況下避免出現不明確的結果, Split 操做從實例值的開始進行到結尾,並匹配 separator 中與實例中的分隔符相等的第一個元素。 實例中子字符串的出現順序優先於 separator 中元素的順序。 例如,考慮值爲「abcdef」的實例。若是 separator 中的第一個元素爲「ef」,且第二個元素爲「bcde」,則拆分操做的結果將是「a」和「f」。 這是由於先遇到實例中的子字符串「bcde」,且它匹配 separator 中的元素,而後才遇到子字符串「f」。 不過,若是 separator 的第一個元素爲「bcd」,且第二個元素爲「bc」,則拆分操做的結果將是「a」和「ef」。 這是由於「bcd」是 separator 中第一個與實例中的分隔符匹配的分隔符。 若是顛倒分隔符的順序,使得第一個元素爲「bc」且第二個元素爲「bcd」,則結果將是「a」和「def」。
性能注意事項
Split 方法爲返回的數組對象分配內存,同時還爲每個數組元素分配一個 String 對象。 若是您的應用程序要求達到最佳性能,或者若是在您的應用程序中內存分配管理很關鍵,請考慮使用 IndexOf 或 IndexOfAny 方法,也能夠選擇使用 Compare 方法,在字符串中定位子字符串。 若是在分隔符字符處分割字符串,請使用 IndexOf 或 IndexOfAny 方法在字符串中定位分隔符字符。 若是在分隔符字符串處分割字符串,請使用 IndexOf 或IndexOfAny 方法定位分隔符字符串的第一個字符。 而後使用 Compare 方法肯定第一個字符後面的字符是否等於分隔符字符串的其他字符。 此外,若是在多個 Split 方法調用中使用相同的字符集拆分字符串,請考慮建立一個數組並在每一個方法調用中都引用該數組。 這能夠極大地減小每一個方法調用的額外系統開銷。

 

Substring的使用: 

1. Substring(Int32, Int32) 

   今後實例檢索子字符串。子字符串從指定的字符位置開始且具備指定的長度。 

   提取字符串中的第i個字符開始的長度爲j的字符串; 

   例如 複製代碼代碼以下:

1 string str = "GTAZB_JiangjBen_123"; 
2 int start=3,length=8; 
3 Console.WriteLine(str.Substring(start-1, length)); 
4 //輸出獲得  AZB_Jian。 
5 
6 
7 string vstr="123456789|";
8 Console.WriteLine(str.Substring(0, vstr.length-1)); 
9 //輸出獲得  123456789。

 

2. Substring(Int32) 

   今後實例檢索子字符串。子字符串從指定的字符位置開始。 

   提取字符串中右數長度爲i的字符串 

   複製代碼代碼以下: 

1    string str = "GTAZB_JiangjBen_123"; 
2    string tSt; int i=5; 
3    tSt = str.Substring(str.Length - i); 
4    Console.WriteLine(tSt); 

   輸出n_123; 

 

Replace的使用: 

1. Replace(String, String) 

   返回一個新字符串,其中當前實例中出現的全部指定字符串都替換爲另外一個指定的字符串。 

   替換字符串中的特定字符串 

   複製代碼代碼以下: 

1    string str = "GTAZB_JiangjBen_123"; 
2    string tSt; 
3    tSt = str.Replace("123","321"); 
4    Console.WriteLine(tSt); 

   輸出GTAZB_JiangjBen_321 

2. 刪除字符串中的特定字符串Jiangj 

   複製代碼代碼以下: 

1    string str = "GTAZB_JiangjBen_123"; 
2    string tSt; tSt = str.Replace("Jiangj",""); 
3    Console.WriteLine(tSt); 

   輸出GTAZB_Ben_123 

3. Replace(Char, Char) 

返回一個新字符串,其中此實例中出現的全部指定 Unicode 字符都替換爲另外一個指定的 Unicode 字符。 

下面的示例將一系列數字之間的空白替換爲逗號,從而建立以逗號分隔的值列表。

1 public static void Main() 
2 { 
3    string str = "1 2 3 4 5 6 7 8 9"; 
4    Console.WriteLine("Original string: \"{0}\"", str); 
5    Console.WriteLine("CSV string: \"{0}\"", str.Replace(' ', ',')); 
6 }

    輸出:Original string: "1 2 3 4 5 6 7 8 9" 

     CSV string: "1,2,3,4,5,6,7,8,9"

remove的使用: 

1. Remove(Int32, Int32) 

   今後實例中的指定位置開始刪除指定數目的字符。 

   刪除指定位置(第i個)的指定長度(length)的字符串 

   複製代碼代碼以下: 

1    string str = "GTAZB_JiangjBen_123"; 
2    int i=5,length=8; 
3    str=str.remove(i, length); 
4    console.writeline(str); 

   輸出GTAZBen_123。 

2. Remove(Int32) 

   刪除此字符串中從指定位置到最後位置的全部字符。 

1    string s = "abc---def"; 
2    Console.WriteLine("{0}", s.Remove(3));

   輸出:abc

相關文章
相關標籤/搜索