String html = "\\u4f1a";
        System.out.println(html);
        html = html.replaceAll("\\\\", "\\");
        System.out.println(html);
报错:
java.lang.StringIndexOutOfBoundsException: String index out of range: 1javastring\\\替换

解决方案 »

  1.   

    \\要替换成\
    html.replaceAll("\\\\\\\\","\\\\");
      

  2.   

    怎么可能无效。
    String html = "\\u4f1a";你这个html里就只有一个\你要双\\的;
    String html = "\\\\u4f1a";这个才是双\\
      

  3.   


    大哥,我第一个System.out.println(html);结果是\u4f1a,自动吞掉文本中一个“\”。
    我就是想把文本中“\\”替换成“\”,这样文本就是“\u4f1a”是个unicode码(汉字“会”),这样
    程序中第二个System.out.println(html)就打印出了“会”这个汉字。按照你的html.replaceAll("\\\\\\\\","\\\\");两次打印都是“\u4f1a”这个结果啊。
      

  4.   

    都说了你这个String html = "\\u4f1a";就只有一个\\,因为\是特殊字符你在定义的时候是需要转义的所以在字符串里写成\\其实他本来就是一个\。不是被自动吞掉的。
      

  5.   

    你这个根本就无需替换,已经就是一个\了。在java的String定义一个\的时候就是用\\的你这里已经就是一个\\了。又不是\\\\两个\\
      

  6.   


    html = html.replace("\\\\", "\\");replaceAll貌似不支持单独以"\\"替换
      

  7.   

    感谢各位,问题解决了,将\\u替换为%u然后自己写个类似js中unescape的方法解码即可得出unicode。使用java中的replace和replaceAll均无法做到。