1. 程式人生 > >C#幾種擷取字串的方法(split 、Substring、Replace、remove)

C#幾種擷取字串的方法(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 方法呼叫中使用相同的字符集拆分字串,請考慮建立一個數組並在每個方法呼叫中都引用該陣列。 這可以極大地減少每個方法呼叫的額外系統開銷。


相關推薦

C#擷取字串方法split SubstringReplaceremove

C#截圖字串常用的方法有 split 、Substring、Replace、remove等。 split的使用:  1. Split( Char ())      返回的字串陣列包含此例項中的子字串(

C 擷取字串方法 split Substring Replace remove

    Split 方法忽略 separator 的任何值為 Nothing 或空字串 ("") 的元素。 為了在 separator 中的字串具有公共字元的情況下避免出現不明確的結果, Split 操作從例項值的開始進行到結尾,並匹配 separator 中與例項中的分隔符相等的第一個元素。 例項中子字串的

web前端js基礎之js的擷取字串方法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js的幾種擷取字串方法</title> <

java java中subStringsplitstringTokenizer三擷取字串方法的效能比較

面試的時候,string  基本上是必須問的知識   突然想起面試的時候曾經被人問過:都知道在大資料量情況下,使用String的split擷取字串效率很低,有想過用其他的方法替代嗎?用什麼替代?我當時的回答很斬釘截鐵:沒有。 google了一下,發現有2中替代方法,於

Java中substringsplitStringTokenizer三擷取字串方法的效能比較

最近在閱讀java.lang下的原始碼,讀到String時,突然想起面試的時候曾經被人問過:都知道在大資料量情況下,使用String的split擷取字串效率很低,有想過用其他的方法替代嗎?用什麼替代?我當時的回答很斬釘截鐵:沒有。 Google了一下,發現有2種替代方法,於是

Java實現常見排序方法 .

 插入排序的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入。其具體步驟參見程式碼及註釋。 [java] view plaincopyprint? /**  * 插入排序<br/>  * <ul> 

C++三引數傳遞方法值傳遞指標傳遞引用傳遞的一些知識

        C++的函式引數傳遞有三種方法:值傳遞、引用傳遞、指標傳遞 。其中引用傳遞和指標傳遞幾乎一樣,只不過引用傳遞在使用時比指標更安全。        (1)關於函式返回一個物件         當你的函式返回型別是【非引用】的型別時,return時先呼叫該類的拷

python 學習彙總10:6修改字串方法tcy

修改一個字串 # 方法1:str轉換list後修改,後用join組成新字串 s='Name Tom' #原字串 a=list(s) #['1', '.', 'N', '

C#字串加密解密方法

/// <summary> /// 字串加密元件 /// </summary> public class Encrypt {     #region "定義加密字串變數"     private SymmetricAlgorithm mCSP;  //宣告對稱演算法變數     pr

java建立字串方法

JAVA有幾種建立字串的方法1)通過引用字元陣列來建立字串 char a[]={'A','b','c','E'}; String str1=new String(a); System.out.println(str1); 2)先定義後賦值 String str2; str2="this is a b

Python呼叫shell命令的方法在新程序中執行shell命令

有時候難免需要直接呼叫Shell命令來完成一些比較簡單的操作,比如mount一個檔案系統之類的。那麼我們使用Python如何呼叫Linux的Shell命令?下面來介紹幾種常用的方法: 1. os 模組 1.1. os模組的exec方法族 Python的exec系

字串頭尾翻轉的方法

方法一: public static String reverse1(String s) { int length = s.length(); if (length <= 1) return s; String left = s.substring

C#的檔案操作方法

建立或覆蓋檔案 需求:如果檔案不存在,建立之,如果存在,覆蓋之。 1,可能有問題的方法 using (FileStream fs = File.OpenWrite(@"d:\work\1.txt")) { byte[] toBytes = Encoding.UTF8.GetBytes(

C語言的取整方法

C語言有以下幾種取整方法: 1、直接賦值給整數變數。如: int i = 2.5; 或 i = (int) 2.5; 這種方法採用的是捨去小數部分 2、C/C++中的整數除法運算子“/”本身就有取整功能(int / int),但是整數除法對負數的取整結果和使用的C編

JS擷取字串方法

JS提供三個擷取字串的方法,分別是:slice(),substring()和substr(),它們都可以接受一個或兩個引數: var stmp = "rcinn.cn"; 使用一個引數 alert(stmp.slice(3));//從第4個字元開始,擷取到最後個字元;

C中“fatal error C1075: end of file found before the left brace '{'”錯誤的可能解決方法

fatal error C1075: end of file found before the left brace '{'的幾種情況 1.缺少"}",是括號不匹配的問題 2.某些特殊的轉義字元多寫了

C++】基於“stringstream+getline”實現字串分割split

哇... 最近在練習C++程式設計,遇到一個題目需要用到字串分割(類似python的split函式)。C++並沒有提供關於這個函式的功能,所以要自己實現。 就在此時,看到字串流 stringstream 這個高階的類,功能非常強大,如數字與字串之間的轉換。 本文只介紹基於“

C# 對文字檔案的讀寫方法總結

計算機在最初只支援ASCII編碼,但是後來為了支援其他語言中的字元(比如漢字)以及一些特殊字元(比如€),就引入了Unicode字符集。基於Unicode字符集的編碼方式有很多,比如UTF-7、UTF-8、Unicode以及UTF-32。在Windows作業系統中,一個文

總結:c++容器的用法及棧和佇列適合自學c++的同學

1.string型別用法 還可以比較大小如a>b,如果a的字典序大於b的返回1,否則返回0 getline(cin,s);讀取一行string型別 string s2(s1)將s2初始化為s1的副本 或m="123";m+="456";cout<<

C# 運行時替換方法需要unsafe編譯

version log aes reflect erl dha ram ins text 第一種方法的基本原理是將函數指針替換成想要的方法(https://stackoverflow.com/questions/7299097/dynamically-replace-the