在Java中用'\\'替换单个'\'

Hus*_*ala 10 java regex string patternsyntaxexception

如何更换一个'\'带有'\\'?当我运行时,replaceAll()我收到此错误消息.

Exception in thread "main" java.util.regex.PatternSyntaxException:
                           Unexpected internal error near index 1 \
                                                                  ^
    at java.util.regex.Pattern.error(Pattern.java:1713)
    at java.util.regex.Pattern.compile(Pattern.java:1466)
    at java.util.regex.Pattern.<init>(Pattern.java:1133)
    at java.util.regex.Pattern.compile(Pattern.java:823)
    at java.lang.String.replaceAll(String.java:2190)
    at NewClass.main(NewClass.java:13)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)

我的代码:

public class NewClass {
    public static void main(String[] args) {
        String str = "C:\\Documents and Settings\\HUSAIN\\My Documents\\My Palettes";
        str = str.replaceAll("\\", "\\\\");
        System.out.println(str);
    }
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*ike 18

String.replaceAll(String,String) 是正则表达式.
String.replace(String,String) 会做你想做的.

下列...

String str = "C:\\Documents and Settings\\HUSAIN\\My Documents\\My Palettes";
System.out.println(str);
str = str.replace("\\", "\\\\");
System.out.println(str);
Run Code Online (Sandbox Code Playgroud)

生产...

C:\ Documents and Settings\HUSAIN\My Documents\My Palettes
C:\\ Documents and Settings \\ HUSAIN \\ My Documents \\ My Palettes


Ada*_*der 11

\也是regexp中的一个特殊字符.这就是为什么你应该做这样的事情:

    str = str.replaceAll("\\\\", "\\\\\\\\");
Run Code Online (Sandbox Code Playgroud)


Jav*_*iaz 5

你必须首先scape \为字符串,然后scape它为正则表达式,它将是\\\\每个斜杠.