1.split()以特殊符號分割
例如: String str="a+b+c"; String[] strs=str.split("[+]");
例如: String geom="point(121)";
String[] list = geom.split("[(]|[)]");
2.split()用法
在java.lang包中有String.split()方法,返回是一個數(shù)組。
1、“.”和“|”都是轉(zhuǎn)義字符,必須得加"\";
如果用“.”作為分隔的話,必須是如下寫法: String.split("\."),這樣才能正確的分隔開,不能用String.split("."); 如果用“|”作為分隔的話,必須是如下寫法: String.split("\|"),這樣才能正確的分隔開,不能用String.split("|");
2、如果在一個字符串中有多個分隔符,可以用“|”作為連字符,
例:“acount=? and uu =? or n=?” 把三個都分隔出來,可以用 String.split("and|or");
3、public String[] split(String regex,int limit)根據(jù)匹配給定的正則表達(dá)式來拆分此字符串。
此方法返回的數(shù)組包含此字符串的每個子字符串,這些子字符串由另一個匹配給定的表達(dá)式的子字符串終止或由字符串結(jié)束來終止。數(shù)組中 的子字符串按它們在此字符串中的順序排列。如果表達(dá)式不匹配輸入的任何部分,則結(jié)果數(shù)組只具有一個元素,即此字符串。
4、public string[] split(string regex)
這里的參數(shù)的名稱是 regex ,也就是 regular expression (正則表達(dá)式)。這個參數(shù)并不是一個簡單的分割用的字符,而是一個正則表達(dá)式, 他對一些特殊的字符可能會出現(xiàn)你預(yù)想不到的結(jié)果,比如測試下面的代碼:
(1) 用豎線 | 分隔字符串,你將得不到預(yù)期的結(jié)果
String[] aa = "aaa|bbb|ccc".split("|"); //String[] aa = "aaa|bbb|ccc".split("\|"); 這樣才能得到正確的結(jié)果 for (int i = 0 ; i <aa.length ; i++ ) { System.out.println("--"+aa); }
(2)用豎 * 分隔字符串運(yùn)行將拋出java.util.regex.PatternSyntaxException異常,用加號 + 也是如此。
String[] aa = "aaabbbccc".split(""); //String[] aa = "aaa|bbb|ccc".split("\"); 這樣才能得到正確的結(jié)果 for (int i = 0 ; i <aa.length ; i++ ) { System.out.println("--"+aa); }
(3)顯然,+ 不是有效的模式匹配規(guī)則表達(dá)式,用"\" "\+"轉(zhuǎn)義后即可得到正確的結(jié)果。
(4) "|" 分隔串時(shí)雖然能夠執(zhí)行,但是卻不是預(yù)期的目的,"\|"轉(zhuǎn)義后即可得到正確的結(jié)果。
(5)還有如果想在串中使用""字符,則也需要轉(zhuǎn)義.首先要表達(dá)"aaaa\bbbb"這個串就應(yīng)該用"aaaa\bbbb",如果要分隔就應(yīng)該這樣才能得到正確結(jié)果:
String[] aa = "aaa\bbb\bccc".split(\\);
(6) 還有就是點(diǎn)號".",也要首先轉(zhuǎn)義才能得到正確的結(jié)果。
第一種方法:
string s="abcdeabcdeabcde"; string[] sArray=s.Split('c') ; foreach(string i in sArray) Console.WriteLine(i.ToString()); 輸出下面的結(jié)果: ab deab deab de
第二種方法:
我們看到了結(jié)果是以一個指定的字符進(jìn)行的分割。使用另一種構(gòu)造方法對多個字符進(jìn)行分割:
string s="abcdeabcdeabcde"; string[] sArray1=s.Split(new char[3]{'c','d','e'}) ; foreach(string i in sArray1) Console.WriteLine(i.ToString()); 可以輸出下面的結(jié)果: ab ab ab
第三種方法: 除了以上的這兩種方法以外,第三種方法是使用正則表達(dá)式。新建一個控制臺項(xiàng)目。 然后先添加 using System.Text.RegularExpressions;
using System.Text.RegularExpressions string content=agcsmallmacsmallgggsmallytx; string[] resultString=Regex.Split(content,small,RegexOptions.IgnoreCase) foreach(string i in resultString) Console.WriteLine(i.ToString()); 輸出下面的結(jié)果: 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=”我是**一個教師“; 我希望顯示的結(jié)果為:我是一個教師。 我如果采用上面的第四種方法來做就會產(chǎn)生下面的錯誤:我 是一個教師。中間有空格輸出,所以輸出結(jié)果并不是希望的結(jié)果,這就又回到了正則表達(dá)式了,這時(shí)可以采用下面的第五種方法:
string str1=‘我是**一個教師“; string[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@[]+); foreach(string i in str2) Console.WriteLine(i.ToString()); 這里通過[]+ 巧妙的完成了我們的目標(biāo)。
更多建議: