1

我有一个带有转义字符的字符串,当打印字符串时,它会产生另一个带有有效转义字符的字符串。我如何检索打印第一个字符串时看起来像的那个字符串?

这是代码 - 初始字符串如下所示:

String string = "{\"agent\":\"{\\\"name\\\":\\\"James Bond\\\"}\"}";
System.out.println("str: "+string);

执行代码会产生

str: {"agent":"{\"name\":\"James Bond\"}"}

我要得到输出中出现的字符串。

4

2 回答 2

3

您可以使用来自Apache Commons LangString unescapeJava(String)的方法。StringEscapeUtils

例子:

String in = "a\\tb\\n\\\"c\\\"";

System.out.println(in);
//This prints
// a\tb\n\"c\"

String out = StringEscapeUtils.unescapeJava(in);

System.out.println(out);
//This prints
// a    b
// "c"

您可以查看有关如何在 Java 中取消转义 Java 字符串文字的更多信息?

于 2012-10-30T12:12:45.787 回答
-1

我想你在找那个

String a="\"agent\":\"{\\\"name\\\":\\\"James Bond\\\"}q\"";

a=a.replace("\\", "\\\\");
a=a.replace("\"","\\\"");
于 2012-10-30T12:16:08.880 回答