java:替换"with"

Arj*_*jun 0 java string

如何在字符串中转义双引号?例如,

input: "Nobody"
output:  \"Nobody\"
Run Code Online (Sandbox Code Playgroud)

我试过这样的,这是行不通的:

String name = "Nobody";
name.replaceAll("\"", "\\\"");
Run Code Online (Sandbox Code Playgroud)

ada*_*shr 6

因为你的字符串"Nobody"中没有任何双引号!

    String name = "Nobo\"dy";
    name = name.replaceAll("\"", "\\\\\"");

    System.out.println(name);
Run Code Online (Sandbox Code Playgroud)
  1. 你的字符串没有双引号
  2. 您没有重新分配名称(请记住,字符串在Java中是不可变的)
  3. 你的正则表达式并不完全正确.

此外,您不需要RegEx来进行这样简单的替换.

试一试

    name = name.replace("\"", "\\\"");
Run Code Online (Sandbox Code Playgroud)


Fre*_*rik 5

adarshr是对的,但是,请注意你忽略了返回的字符串,这样做:

String name = "Nobody";
name = name.replaceAll("\"", "\\\"");
Run Code Online (Sandbox Code Playgroud)

java中的字符串是可以改变的

编辑:自从我写这篇文章以来,adarshr已经改变了他的答案(如果有人想知道为什么我写这个)