Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java字符串如何替换";用\";为了逃避JSON?_Java_Regex_Replace_Escaping - Fatal编程技术网

Java字符串如何替换";用\";为了逃避JSON?

Java字符串如何替换";用\";为了逃避JSON?,java,regex,replace,escaping,Java,Regex,Replace,Escaping,我试图用Java中的\“替换”,但是所有的斜杠都变得非常混乱。在Java中用\“替换”的正确方法是什么 string.replaceAll("\"","\\""); 让我们解释一下: “\”:是带有\“转义的”字符的字符串 “\\\”:是一个包含\转义\字符和\“转义”字符的字符串,如果要替换文本,则不要使用replaceAll而是replace 原因是,replaceAll使用正则表达式语法,这意味着一些字符将被特殊处理为+*()),要使它们成为文字,需要对它们进行转义替换自动为您添加转义机

我试图用Java中的
\“
替换
,但是所有的斜杠都变得非常混乱。在Java中用
\“
替换
的正确方法是什么

string.replaceAll("\"","\\"");
让我们解释一下:
“\”
:是带有
\“
转义的
字符的字符串
“\\\”
:是一个包含
\
转义
\
字符和
\“
转义
字符的字符串,如果要替换文本,则不要使用
replaceAll
而是
replace

原因是,
replaceAll
使用正则表达式语法,这意味着一些字符将被特殊处理为
+
*
),要使它们成为文字,需要对它们进行转义<代码>替换
自动为您添加转义机制,因此

replaceAll("\"", "\\\\\"")
你可以写

replace("\"", "\\\"");
这就不那么令人困惑了

尝试使用字符:

public void bsp(){
  //34 = " ; 92 = \
  String replace = "\"";
  String replace2 = "\\";
  text.replace(replace.charAt(0),replace2.charAt(0));
}

string.replaceAll(“\”,“\”)为什么不使用JSON库呢?不要重新发明轮子,可能很糟糕。。。(这不是对你的编码能力的判断——只是,除非你的主要任务是构建JSON库,否则你不可能像那些主要任务是构建JSON库的人那样出色地完成这项工作。)另请参见:这将不起作用<代码>\
也是替换部分中的特殊字符,因此您也需要在那里转义它(就像在正则表达式中一样)。这是windows特有的吗?@Arun否,此代码在所有操作系统中的行为都应该相同。您应该先尝试此方法,然后再将其作为答案发布(提示:
char
也可以被视为整数)。
public void bsp(){
  //34 = " ; 92 = \
  String replace = "\"";
  String replace2 = "\\";
  text.replace(replace.charAt(0),replace2.charAt(0));
}