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

时间:2011-12-06 07:09:47

标签: java

我的代码段:

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");

3 个答案:

答案 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("\\\\", "\\");