我的代码段:
String s1 = "\\u4f60\\u597d";
System.out.println(s1); //print:\u4f60\u597d
String s2 = "\u4f60\u597d";
System.out.println(s2); //print chinese character:你好
我想将s1更改为s2,也就是说用单个反斜杠或其他方法替换双反斜杠来实现此操作。我尝试了下面的方法,但它失败了,因为编译器提示无效的unicode :
"\\u4f60\\u597d".replace("\\\\u", "\u");
答案 0 :(得分:6)
您可能希望从Apache Commons查看StringEscapeUtils.unescapeJava()。
String s1 = "\\u4f60\\u597d";
System.out.println(s1); //print:\u4f60\u597d
System.out.println(StringEscapeUtils.unescapeJava(s1));
String s2 = "\u4f60\u597d";
System.out.println(s2); //print chinese character
收率:
\ u4f60 \ u597d
你好
你好
答案 1 :(得分:0)
在http://commons.apache.org/lang/
下载commons-lang.jar库StringEscapeUtils类可能对此有用。
答案 2 :(得分:0)
这对我有用
String s1 = "\\u4f60\\u597d";
String ans = s1.replace("\\\\", "\\");