2013-03-20 95 views
4

我試圖分裂與雙管串(||)作爲delimiter.String看起來是這樣的:分裂的雙管(||)的字符串

String str ="[email protected]||[email protected]||[email protected]"; 

我能使用StringTokeniser.The的javadoc分裂它說,使用這個類氣餒,而是看作爲String.split選擇。

StringTokenizer token = new StringTokenizer(str, "||"); 

上面的代碼工作fine.But無法弄清楚爲什麼下面string.split功能不給我預期的結果..

String[] strArry = str.split("\\||"); 

我要去哪裏錯了..?

+0

您的預期結果是什麼? – Alepac 2013-03-20 13:15:52

回答

11

String.split()使用正則表達式。您需要轉義您想用作分隔線的字符串。

格局已經爲你做這一點,即Pattern.quote(String s)的方法。

13

你必須逃離每一個|這樣str.split("\\|\\|")

+0

是不是「\ | \ |」?我錯了嗎? – CsBalazsHungary 2013-03-20 13:15:35

+0

想知道,爲什麼你需要在java中逃避'|'? – 2013-03-20 13:16:12

+0

@CsBalazsHungary還必須逃脫''\\以來也是元字符 – gtgaxiola 2013-03-20 13:16:13

3

試試這個波紋管:

String[] strArry = str.split("\\|\\|"); 
0

你可以試試這個太...

String[] splits = str.split("[\\|]+"); 

請注意,你必須逃離管,因爲它在正則表達式與String.split有特殊的含義()方法需要正則表達式參數。