Java用反斜杠替换所有(Java replaceAll with Backslashes)

对于这个简单的程序......

import java.lang.String; public class test { public static void main(String[] argv) { String s = "Hello <BSLASH>"; String sReplaced = s.replaceAll("<BSLASH>", "\\\\"); System.out.println("s = " + s); System.out.println("sReplaced = " + sReplaced); } }

为什么不用2个反斜杠替换等于Hello \\?

$javac test.java $ java test s = Hello <BSLASH> sReplaced = Hello \

For this simple program ...

import java.lang.String; public class test { public static void main(String[] argv) { String s = "Hello <BSLASH>"; String sReplaced = s.replaceAll("<BSLASH>", "\\\\"); System.out.println("s = " + s); System.out.println("sReplaced = " + sReplaced); } }

Why doesn't sReplaced equal Hello \\ with 2 backslashes?

$javac test.java $ java test s = Hello <BSLASH> sReplaced = Hello \

最满意答案

不要使用replaceAll ,使用replace :

String sReplaced = s.replace("<BSLASH>", "\\\\");

replaceAll采用正则表达式,这里不需要(这就是为什么\\\\求值为\ )。

哦,你真的不需要import java.lang.String - 默认情况下导入String类。

Don't use replaceAll for this, use replace:

String sReplaced = s.replace("<BSLASH>", "\\\\");

replaceAll takes a regular expression, which is not necessary here (this is why \\\\ evaluates to \).

Oh, and you really don't need import java.lang.String - the String class is imported by default.

更多推荐