天天看點

String.split()用法小結

第一種方法:

string s=abcdeabcdeabcde;

string[] sArray=s.Split('c') ;

foreach(string i in sArray)

Console.WriteLine(i.ToString());

輸出下面的結果:

ab

deab

deab

de

第二種方法:

我們看到了結果是以一個指定的字元進行的分割。使用另一種構造方法對多個字元進行分割:

string s="abcdeabcdeabcde";

string[] sArray1=s.Split(new char[3]{'c','d','e'}) ;

foreach(string i in sArray1)

Console.WriteLine(i.ToString());

可以輸出下面的結果:

ab

ab

ab

第三種方法:

除了以上的這兩種方法以外,第三種方法是使用正規表達式。建立一個控制台項目。然後先添加 using System.Text.RegularExpressions;

System.Text.RegularExpressions

string content=agcsmallmacsmallgggsmallytx;

string[]resultString=Regex.Split(content,small,RegexOptions.IgnoreCase)

foreach(string i in resultString)

Console.WriteLine(i.ToString());

輸出下面的結果:

agc

mac

ggg

ytx

第四種方法:

string str1=我*****是*****一*****個*****教*****師;

string[] str2;

str1=str1.Replace(*****,*) ;

str2=str1.Split(*) ;

foreach(string i in str2)

Console.WriteLine(i.ToString());

第五種方法:

string str1=我**是*****一*****個*****教*****師;

我希望顯示的結果為:我是一個教師。

我如果采用上面的第四種方法來做就會産生下面的錯誤:我   是一個教師。中間有空格輸出,是以輸出結果并不是希望的結果,這就又回到了正規表達式了,這時可以采用下面的第五種方法:

string str1=我**是*****一*****個*****教*****師;

string[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@[*]+); 

foreach(string i in str2)

Console.WriteLine(i.ToString());

這裡通過[*]+ 巧妙的完成了我們的目标。

我在應用中用到一些,給大家總結一下,僅供大家參考:

1、如果用“.”作為分隔的話,必須是如下寫法:String.split("\\."),這樣才能正确的分隔開,不能用String.split(".");

2、如果用“|”作為分隔的話,必須是如下寫法:String.split("\\|"),這樣才能正确的分隔開,不能用String.split("|");

“.”和“|”都是轉義字元,必須得加"\\";

3、如果在一個字元串中有多個分隔符,可以用“|”作為連字元,比如:“acount=? and uu =? or n=?”,把三個都分隔出來,可以用String.split("and|or");