如執行:"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");