2013-11-23 58 views
2

我需要逃脫(性格,也不比其他的輸出成爲東西..非法轉義字符 「(」?

一個

b

任何幫助,不勝感激!

任意輸入:

「一個」 + 「\ n」 + 「(」 + 「b」 的

所需的輸出:

一個

b

//Here are the attempted work-arounds that failed 
40  String test = "a"+"\n("+"b"; 
41  String[] testSplitted = test.split("\n"+"("); 
42  System.out.println(testSplitted[0]); 
43  System.out.println(testSplitted[1]); 
    // ("\n"+"\(")  ILLEGAL ESCAPE CHARACTER 
    // ("\n\(")  ILLEGAL ESCAPE CHARACTER 
    // ("\n(")   INVALID REGULAR EXPRESSION: UNCLOSED GROUP 
    // ("\n\\(")  Output: a \(b (Desired Output: a b) 
    // ("\n"+"[(]") Output: 
a [(]b Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 
at inputhandler.InputHandler.main(InputHandler.java:43) 
Java Result: 1 

    // ("\n"+"(")  Output:  
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed group near index 2 
(
^ 
at java.util.regex.Pattern.error(Pattern.java:1924) 
at java.util.regex.Pattern.accept(Pattern.java:1782) 
at java.util.regex.Pattern.group0(Pattern.java:2857) 
at java.util.regex.Pattern.sequence(Pattern.java:2018) 
at java.util.regex.Pattern.expr(Pattern.java:1964) 
at java.util.regex.Pattern.compile(Pattern.java:1665) 
at java.util.regex.Pattern.<init>(Pattern.java:1337) 
at java.util.regex.Pattern.compile(Pattern.java:1022) 
at java.lang.String.split(String.java:2313) 
at java.lang.String.split(String.java:2355) 
at inputhandler.InputHandler.main(InputHandler.java:41) 
Java Result: 1 

回答

14

爲了逃避(需要兩個反斜槓,因爲反斜槓是Java中的字符串特殊字符,需要進行轉義本身。所以,就變成:\\(

在\\\的情況下
+1

( 輸出.. 一個 \\(B – user3025996

+0

終於得到它的工作,我很欣賞的幫助下,遺憾的混亂:■ – user3025996

+0

我如果是\\\(輸出是\\(。),你是如何解決這個問題的? – gvo