2013-10-17 22 views
2

我有以下代碼:哪些字符在拆分方法中不能接受?

String s = "100$ali$Rezaie" ; 
String[] ar = s.split("$") ; 

如下因素字符不分流工作:

. $ ^

是否有不會split()方法可以接受任何其他字符?

+5

也許閱讀String.split)的Javadoc(會給你答案。 –

+0

原因:[分割功能不工作正常](http://stackoverflow.com/questions/18865674/split-function-not-working-properly/18865684#18865684) –

回答

0

in Java split需要Regex表達式。

閱讀有關正則表達式元字符here。它們是:

反斜槓\,這個^,美元符號$,句點或點, 豎線或管道符號|問號,星號 或星*的?加號+,左括號(,閉合 括號),該開口的方括號[,捲曲 括號{1

開口有關可以逃避這些字符用反斜槓的大部分。在Java中,您需要使用第二個反斜槓來轉義該反斜槓。所以爲了逃避元字符,你需要使用\\

所以在你的例子:

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

使用這樣

String[] parts = str.split("\\$"); 

的\真的是相當於一個'\(第一\被要求在字符串字面量在Java轉義序列)。它是正則表達式中的一個特殊字符,意思是「直接使用下一個字符,不要解釋它的特殊含義」。

0

Pattern類列出了在Java中使用正則表達式。如果在正則表達式語法中使用,那麼您在其中找到的任何字符都必須轉義。

如果您想將該字符視爲常規字符,則需要將其轉義。

0

我們可以用「\」(雙斜槓)作爲前綴,我們可以分割字符串..

String s = "100$ali$Rezaie" ; 
String[] ar = s.split("\\$") ; 
for (String str : ar) { 
System.out.println(str); 
}