2014-10-28 131 views
3

如何将包含"的字符串替换为\"替换包含“with ”的字符串?

replace(""","\"")不适合我。

public static String replaceSpecialCharsForJson(String str){ 
    return str.replace("'","\'") 
       .replace(":","\\:") 
       .replace("\"","\"") 
       .replace("\r", "\\r") 
       .replace("\n", "\\n"); 
} 
+0

你必须逃离'\':'“\\\”“'' – ifloop 2014-10-28 12:22:21

+0

”'是特殊字符,所以你必须之前使用\它就像这里'\ r','\ n'。 – 2014-10-28 12:23:01

回答

5

你可以尝试使用:

replace("\"","\\\"") 

由于两个"\元字符,你必须逃脱他们\

+0

感谢一个人为我工作.. – Yogesh 2014-10-28 12:37:13

1

试试这个:

replace("\"","\\\""); 
0

使用:

str.replace("\"","\\\"") 

所以你逃避了反斜杠。

1

作为字符串的一部分的每个斜杠都需要被转义。所以如果你想要一个字符串看起来像"\\",你的代码将不得不包含String s = "\\\\"。丑陋但真实。

对于可能被解释的任何其他特殊字符也是如此。包含行情和冒号。 这意味着" \ " "看起来像" \\ \" "(由空格,使独立的逃逸更明显)

0

你想

  • 更换"(正确转义:\"
  • \"(正确转义:\\\"

正确的调用是:

replace("\"", "\\\""); 
0

我试过这样。我不知道有多少这是很有帮助的在您的情况

String oldStr = String.valueOf('"'); 
String newStr = File.separator.concat(String.valueOf('"'));  
System.out.println(oldStr.replace(String.valueOf('"'),newStr)); 
相关问题