在java.lang包中也有String.split()方法,與.net的類似,都是返回是一個(gè)字符型數(shù)組,但使用過(guò)程中還有一些小技巧。
如執(zhí)行:"2|33|4".split("|")
出來(lái)的結(jié)果是:
""
2
|
3
3
|
4
奇怪吧,不過(guò)注意看一下API說(shuō)明還是知道原因的.
java.lang.string.split
split 方法
將一個(gè)字符串分割為子字符串,然后將結(jié)果作為字符串?dāng)?shù)組返回。
stringObj.split([separator,[limit]])
參數(shù)
stringObj
必選項(xiàng)。要被分解的 String 對(duì)象或文字。該對(duì)象不會(huì)被 split 方法修改。
separator
可選項(xiàng)。字符串或 正則表達(dá)式對(duì)象,它標(biāo)識(shí)了分隔字符串時(shí)使用的是一個(gè)還是多個(gè)字符。如果忽略該選項(xiàng),返回包含整個(gè)字符串的單一元素?cái)?shù)組。
limit
可選項(xiàng)。該值用來(lái)限制返回?cái)?shù)組中的元素個(gè)數(shù)。
說(shuō)明
split 方法的結(jié)果是一個(gè)字符串?dāng)?shù)組,在 stingObj 中每個(gè)出現(xiàn) separator 的位置都要進(jìn)行分解
所以正常的寫法是這樣的:
1、如果用“.”作為分隔的話,必須是如下寫法:String.split("\\."),這樣才能正確的分隔開,不能用String.split(".");
2、如果用“|”作為分隔的話,必須是如下寫法:String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|");
“.”和“|”都是轉(zhuǎn)義字符,必須得加"\\";
3、如果在一個(gè)字符串中有多個(gè)分隔符,可以用“|”作為連字符,比如:“a=1 and b =2 or c=3”,把三個(gè)都分隔出來(lái),可以用String.split("and|or");