我有以下代碼:哪些字符在拆分方法中不能接受?
String s = "100$ali$Rezaie" ;
String[] ar = s.split("$") ;
如下因素字符不分流工作:
. $ ^
是否有不會split()
方法可以接受任何其他字符?
我有以下代碼:哪些字符在拆分方法中不能接受?
String s = "100$ali$Rezaie" ;
String[] ar = s.split("$") ;
如下因素字符不分流工作:
. $ ^
是否有不會split()
方法可以接受任何其他字符?
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split%28java.lang.String%29
由於文檔說,split
需要一個正則表達式作爲參數。字符如.
,$
和^
在正則表達式中有特殊含義。
而不是說你不能使用這些字符拆分字符串。不,您可以簡單地通過正則表達式逃避角色,使其表現「通常」。
String[] ar = s.split("\\$");
split
的參數是一個正則表達式,而不是單個字符。 http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html的頁面列出了所有在正則表達式中具有特殊含義的字符。
split()
方法接受正則表達式作爲其輸入。無論RegEx有什麼問題,split()都會遇到問題。
下面是正則表達式教程文檔:http://docs.oracle.com/javase/tutorial/essential/regex/
使用這樣
String[] parts = str.split("\\$");
的\真的是相當於一個'\(第一\被要求在字符串字面量在Java轉義序列)。它是正則表達式中的一個特殊字符,意思是「直接使用下一個字符,不要解釋它的特殊含義」。
的Pattern類列出了在Java中使用正則表達式。如果在正則表達式語法中使用,那麼您在其中找到的任何字符都必須轉義。
如果您想將該字符視爲常規字符,則需要將其轉義。
我們可以用「\」(雙斜槓)作爲前綴,我們可以分割字符串..
String s = "100$ali$Rezaie" ;
String[] ar = s.split("\\$") ;
for (String str : ar) {
System.out.println(str);
}
也許閱讀String.split)的Javadoc(會給你答案。 –
原因:[分割功能不工作正常](http://stackoverflow.com/questions/18865674/split-function-not-working-properly/18865684#18865684) –