2012-11-04 50 views
1

我有三個部分字符串與由$符號分隔每個部分
例如,

String s = "abc$efg$xyz"; 

現在,當我使用split方法像這樣把它分解:

String values[] = s.split("$"); 

values數組包含整個字符串作爲單個元素。

但是,當我使用這個:

String values[]=s.split("\\$"); 

它完美的工作原理是什麼,我想這意味着
現在values數組包含abc,對指數0,1 efgxyz和2分別。

我不知道爲什麼,首先split我使用split(" ");

+0

爲什麼下跌投票我對正則表達式並不瞭解太多,所以我在這裏搜索任何相關問題後問這裏?\ – Abubakkar

+0

順便說一句'Pattern.quote(「$」)'是一個更安全的正則表達式轉義機制。 – OldCurmudgeon

回答

13

因爲字符$是在正則表達式中用於標記行結束的保留標記。這就是爲什麼你必須轉義使用\\。在你的例子所示

+1

感謝您的回答 – Abubakkar

7

String.split分割上a single white space時使用類似split沒有工作,需要一個正則表達式。

$在正則表達式中意味着字符串的nd,所以如果你想匹配字符$字符,那麼你需要轉義它。

+0

感謝您的回答 – Abubakkar

0

$是一個正則表達式是指在Java中的正則表達式中使用的字符串的結束

它用於

$ Checks if a line end follows 

所以你哈瓦使用\\

相關問題