Java中的字符串分割
轉自 http://blog.csdn.net/yuwenhao0518/article/details/7161059
????????? http://longkm.blog.163.com/blog/static/116662640200971541741/
?
java中的split函數和js中的split函數不一樣。?
Java中的我們可以利用split把字符串按照指定的分割符進行分割,然后返回字符串數組,下面是string.split的用法實例及注意事項:?
java.lang.string.split?
split 方法?
將一個字符串分割為子字符串,然后將結果作為字符串數組返回。?
stringObj.split([separator,[limit]]) 免費資源收集網(http://www.freezq.cn)?
stringObj?
必選項。要被分解的 String 對象或文字,該對象不會被split方法修改。?
separator?
可選項。字符串或正則表達式對象,它標識了分隔字符串時使用的是一個還是多個字符。如果忽略該選項,返回包含整個字符串的單一元素數組。?
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?
經驗分享:?
1、分隔符為“.”(無輸出),“|”(不能得到正確結果)轉義字符時,“*”,“+”時出錯拋出異常,都必須在前面加必須得加"\\",如split(\\|);?
2、如果用"\"作為分隔,就得寫成這樣:String.split("\\\\"),因為在Java中是用"\\"來表示"\"的,字符串得寫成這樣:String Str="a\\b\\c";?
轉義字符,必須得加"\\";?
3、如果在一個字符串中有多個分隔符,可以用"|"作為連字符,比如:String str="Java string-split#test",可以用Str.split(" |-|#")把每個字符串分開;?
?
?
使用String.split方法時要注意的問題
在使用String.split方法分隔字符串時,分隔符如果用到一些特殊字符,可能會得不到我們預期的結果。 我們看jdk doc中說明 public String[] split(String regex) Splits this string around matches of the given regular expression. 參數regex是一個 regular-expression的匹配模式而不是一個簡單的String,他對一些特殊的字符可能會出現你預想不到的結果,比如測試下面的代碼: 用豎線 | 分隔字符串,你將得不到預期的結果 String[] aa = "aaa|bbb|ccc".split("|");//String[] aa = "aaa|bbb|ccc".split("\\|"); 這樣才能得到正確的字符串結果 用豎 * 分隔字符串運行將拋出java.util.regex.PatternSyntaxException異常,用加號 + 也是如此。 String[] aa = "aaa*bbb*ccc".split("*");
//String[] aa = "aaa|bbb|ccc".split("\\*"); 這樣才能得到正確的字符串結果 顯然,+ * 不是有效的模式匹配規則表達式,用"\\*" "\\+"轉義后即可得到正確的字符串結果。 "|" 分隔串時雖然能夠執行,但是卻不是預期的目的,得到的是每個字符的分割,而不是字符串,"\\|"轉義后即可得到正確的字符串結果。 還有如果想在串中使用"\"字符,則也需要轉義.首先要表達"aaaa\bbbb"這個串就應該用"aaaa\\bbbb",如果要分隔就應該這樣才能得到正確結果: String[] aa = "aaa\\bbb\\bccc".split("\\\\");
注意當用"."分隔的時候, 要用"[.]" 進行分隔!
總結
以上是生活随笔為你收集整理的Java中的字符串分割的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 看完这篇你就明白,为什么说大部分企业建设
- 下一篇: 企业数字化新战场:低代码究竟是“毒瘤”还