如何在单字节字符串中使用单个反斜杠替换双反斜杠

1 java

我的代码片段:

String s1 = "\\u4f60\\u597d";  
System.out.println(s1); //print?\u4f60\u597d  
String s2 = "\u4f60\u597d";  
System.out.println(s2); //print chinese character???
Run Code Online (Sandbox Code Playgroud)

我想将s1更改为s2,也就是说用单个反斜杠或其他方法替换双反斜杠来实现此操作.我尝试了下面的方法,但它失败了,因为编译器提示无效的unicode:

"\\u4f60\\u597d".replace("\\\\u", "\u");
Run Code Online (Sandbox Code Playgroud)

npi*_*nti 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
Run Code Online (Sandbox Code Playgroud)

产量:

\ u4f60\u597d

你好

你好