WPF拆分字符串,截取字符串關鍵及,提取字符串有用信息/WPF split/Substring/Replace/remove等用法


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

split的使用:  

1. Split( Char ()) 

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

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

    例如 復制代碼代碼如下: 

    string st="GT123_1"; 

    string[] sArray=st.Split(‘_’);// 一定是單引 

    即可得到sArray[0]="GT123",sArray[1]="1"; 

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

    例如 復制代碼代碼如下: 

    string str = "GTAZB_JiangjBen_123"; 

    string[] sArray = str.Split(new char[2] { 'j', '_' }); 

    foreach(string e in sArray) 

    { Console.WriteLine(e); } 

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

3.Split( String (), StringSplitOptions) 

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

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

   例如 復制代碼代碼如下: 

   string str = "GTAZB_JiangjBen_123"; 

   string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries); 

   foreach(string e in sArray) 

  { Console.WriteLine(e); } 

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

 

Substring的使用: 

1. Substring(Int32, Int32) 

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

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

   例如 復制代碼代碼如下: 

   string str = "GTAZB_JiangjBen_123"; 

   int start=3,length=8; 

   Console.WriteLine(str.Substring(start-1, length)); 

   輸出得到AZB_Jian。 

2. Substring(Int32) 

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

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

   復制代碼代碼如下: 

   string str = "GTAZB_JiangjBen_123"; 

   string tSt; int i=5; 

   tSt = str.Substring(str.Length - i); 

   Console.WriteLine(tSt); 

   輸出n_123; 

 

Replace的使用: 

1. Replace(String, String) 

   返回一個新字符串,其中當前實例中出現的所有指定字符串都替換為另一個指定的字符串。 

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

   復制代碼代碼如下: 

   string str = "GTAZB_JiangjBen_123"; 

   string tSt; 

   tSt = str.Replace("123","321"); 

   Console.WriteLine(tSt); 

   輸出GTAZB_JiangjBen_321 

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

   復制代碼代碼如下: 

   string str = "GTAZB_JiangjBen_123"; 

   string tSt; tSt = str.Replace("Jiangj",""); 

   Console.WriteLine(tSt); 

   輸出GTAZB_Ben_123 

3. Replace(Char, Char) 

返回一個新字符串,其中此實例中出現的所有指定 Unicode 字符都替換為另一個指定的 Unicode 字符。 

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

public static void Main() 

   string str = "1 2 3 4 5 6 7 8 9"; 

   Console.WriteLine("Original string: \"{0}\"", str); 

   Console.WriteLine("CSV string: \"{0}\"", str.Replace(' ', ',')); 

}

輸出: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)的字符串 

   復制代碼代碼如下: 

   string str = "GTAZB_JiangjBen_123"; 

   int i=5,length=8; 

   str=str.remove(i, length); 

   console.writeline(str); 

   輸出GTAZBen_123。 

2. Remove(Int32) 

   刪除此字符串中從指定位置到最后位置的所有字符。 

   string s = "abc---def"; 

   Console.WriteLine("{0}", s.Remove(3)); 

   輸出:abc

----------------------------------------------------------------------------------------------------------------


    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 方法調用中使用相同的字符集拆分字符串,請考慮創建一個數組並在每個方法調用中都引用該數組。 這可以極大地減少每個方法調用的額外系統開銷。


————————————————


原文鏈接:https://blog.csdn.net/wangshubo1989/article/details/46905881


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM