它是java.lang包中的String.split()方法,返回是一個數組 我在應用中用到一些,給你們總結一下,僅供你們參考:java
一、若是用「.」做爲分隔的話,必須是以下寫法:String.split("\\."),這樣才能正確的分隔開,不能用String.split("."); 正則表達式
二、若是用「|」做爲分隔的話,必須是以下寫法:String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|"); 「.」和「|」都是轉義字符,必須得加"\"; express
三、若是在一個字符串中有多個分隔符,能夠用「|」做爲連字符,好比:「acount=? and uu =? or n=?」,把三個都分隔出來,能夠用String.split("and|or"); 使用String.split方法分隔字符串時,分隔符若是用到一些特殊字符,可能會得不到咱們預期的結果。數組
咱們看jdk doc中說明 測試
public String[] split(String regex) Splits this
this string around matches of the given regular expression. spa
參數regex是一個 regular-expression的匹配模式而不是一個簡單的String,他對一些特殊的字符可能會出現你預想不到的結果,好比測試下面的代碼: 字符串
用豎線 | 分隔字符串,你將得不到預期的結果string
String[] aa = "aaa|bbb|ccc".split("|");
//String[] aa = "aaa|bbb|ccc".split("\\|"); 這樣才能獲得正確的結果it
for (int i = 0 ; i <aa.length ; i++ ) {
System.out.println("--"+aa[i]);
}
用豎 * 分隔字符串運行將拋出java.util.regex.PatternSyntaxException異常,用加號 + 也是如此。
String[] aa = "aaa*bbb*ccc".split("*");
//String[] aa = "aaa|bbb|ccc".split("\\*"); 這樣才能獲得正確的結果
for (int i = 0 ; i <aa.length ; i++ ) {
System.out.println("--"+aa[i]);
}
顯然,+ * 不是有效的模式匹配規則表達式,用"\\*" "\\+"轉義後便可獲得正確的結果。
"|" 分隔串時雖然可以執行,可是卻不是預期的目的,"\\|"轉義後便可獲得正確的結果。
還有若是想在串中使用""字符,則也須要轉義.首先要表達"aaaa\bbbb"這個串就應該用"aaaa\\bbbb",若是要分隔就應該這樣才能獲得正確結果:
String[] aa = "aaa\\bbb\\bccc".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()); 這裏經過[*]+ 巧妙的完成了咱們的目標。