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 に答える