2016-05-16 104 views
3

我想分割特殊字符「\」。 然而,它似乎並沒有制定出使用如何在 java中拆分字符串?

a.split("\"); 

a.split("\\"); 
+1

它應該工作:'的String [] =分裂a.split( 「\\」);' – theTechnoKid

+0

爲什麼你認爲第二個選項不起作用?你能分享一個示例輸入並解釋結果與你所期望的不同嗎? – Mureinik

+0

線程「main」中的異常java.util.regex.PatternSyntaxException:索引1附近的意外內部錯誤 \ –

回答

2

解決雖然你可以逃脫正則表達式到有點令人驚訝的String.split

String str = "a\\b\\c"; 
str.split("\\\\"); 

它也可以編譯Pattern.LITERAL一個Pattern然後用Pattern.split(CharSequence)

String str = "a\\b\\c"; 
Pattern p = Pattern.compile("\\", Pattern.LITERAL); 
String[] arr = p.split(str); 
System.out.println(Arrays.toString(arr)); 

,輸出

[a, b, c] 
+0

這也是一個不錯的方法。感謝您的回答 –

+0

感謝@ChitKhine的編輯 - 我進一步將反引號改爲雙引號。 –

2

這個問題可以通過使用

a.split("\\\\"); 
+0

幹得好......準確回答。 – 2016-05-18 16:44:09

0

只需使用\ n中的字符串內如果需求。沒有方法需要拆分。

  1. 「\」java中的特殊字符。這是用來跳過一個字符。比如String s =「我是一個大學的」學生「!」; 聽到沒有使用「\」,不允許使用雙c。
  2. 我們不能在字符串中使用「\」單個。 String s =「我是一名大學生!」; 聽到「\」會使Err。
  3. 無需使用「\」拆分方法只需在需要的地方使用「\ n」即可。

    或使用其它字符與它這樣

    String s = "Thir is a Tiger.\'I like it very nuch!\'I it a pet!"; 
    String s2[] = s.split("\'"); 
    for (int i = 0; i < s2.length; i++) { 
        System.out.println(i+" value "+s2[i]); 
    } 
    
+0

我這裏的目的是用於我的文件目錄。當我檢索文件目錄時,我得到了字符串light \ hello \ text.txt。在這種情況下,我們將在字符串中出現\。 –

+0

然後使用它。=> String s =「light \\ hello \\ text.txt」; String s2 [] = s.split(「\\\\」); (int i = 0; i 2016-05-16 04:36:07

0
String s = "light\\hello\\text.txt"; 
    String s3[] = s.split(Pattern.quote("\\")); 
    for (int i = 0; i < s3.length; i++) { 
     System.out.println(i+" value "+s3[i]); 
}