利用split,split
java.lang.string.split
split 方法
將一個字串分割為子字串,然後將結果作為字串數組返回。
stringObj.split([separator,[limit]])
stringObj
必選項。要被分解的 String 對象或文字,該對象不會被split方法修改。
separator
可選項。字串或Regex對象,它標識了分隔字串時使用的是一個還是多個字元。如果忽略該選項,返回包含整個字串的單一元素數組。
limit
可選項。該值用來限制返回數組中的元素個數(也就是最多分割成幾個數組元素,只有為正數時有影響)
split 方法的結果是一個字串數組,在 stingObj 中每個出現 separator 的位置都要進行分解。separator不作為任何數組元素的部分返回。
樣本1:
String str="Java string split test";
String[] strarray=str.split(" ");
for (int i = 0; i < strarray.length; i++)
System.out.println(strarray[i]);
將輸出:
Java
string
split
test
樣本2:
String str="Java string split test";
String[] strarray=str.split(" ",2);//使用limit,最多分割成2個字串
for (int i = 0; i < strarray.length; i++)
System.out.println(strarray[i]);
將輸出:
Java
string split test
樣本3:
String str="192.168.0.1";
String[] strarray=str.split(".");
for (int i = 0; i < strarray.length; i++)
System.out.println(strarray[i]);
結果是什麼也沒輸出,將split(".")改為split("\\."),將輸出正確結果:
192
168
0
1
多個符號作為分隔字元 String address="上海^上海市@閔行區#吳中路"; String[] splitAddress=address.split("\\^|@|#"); System.out.println(splitAddress[0]+splitAddress[1]+splitAddress[2]+splitAddress[3]);
/*需要分割的文章*/ String str = "第一句。第二句!第三句:第四句;第五句。"; /*Regex:句子結束符*/ String regEx=":|。|!|;"; Pattern p =Pattern.compile(regEx); Matcher m = p.matcher(str);
經驗分享:
1、分隔字元為“.”(無輸出),“|”(不能得到正確結果)逸出字元時,“*”,“+”時出錯拋出異常,都必須在前面加必須得加"\\",如split(\\|);
2、如果用"\"作為分隔,就得寫成這樣:String.split("\\\\"),因為在Java中是用"\\"來表示"\"的,字串得寫成這樣:String Str="a\\b\\c";
?逸出字元,必須得加"\\";
3、如果在一個字串中有多個分隔字元,可以用"|"作為連字號,比如:String str="Java string-split#test",可以用Str.split(" |-|#")把每個字串分開;