如執行:"2|33|4".split("|")
出來的結果是:
""
2
3
3
4
奇怪吧,不過注意看一下API說明還是知道原因的.
java.lang.string.split
split 方法
將一個字符串分割為子字符串,然後將結果作為字符串數組返回。
stringObj.split([separator,[limit]])
參數
stringObj
必選項。要被分解的 String 對象或文字。該對象不會被 split 方法修改。
separator
可選項。字符串或 正則表達式對象,它標識了分隔字符串時使用的是一個還是多個字符。如果忽略該選項,返回包含整個字符串的單一元素數組。
limit
可選項。該值用來限制返回數組中的元素個數。
說明
split 方法的結果是一個字符串數組,在 stingObj 中每個出現 separator 的位置都要進行分解
所以正常的寫法是這樣的:
1、如果用“.”作為分隔的話,必須是如下寫法:String.split("\\."),這樣才能正確的分隔開,不能用String.split(".");
2、如果用“|”作為分隔的話,必須是如下寫法:String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|");
“.”和“|”都是轉義字符,必須得加"\\";
3、如果在一個字符串中有多個分隔符,可以用“|”作為連字符,比如:“a=1 and b =2 or c=3”,把三個都分隔出來,可以用String.split("and|or");