public static void main(String[] args) {
String s = "\\u4e2d\\u56fd";
//s = s.replace("\\u", "\u");
s = s.replace("\\\\u", "\\u");
System.out.println(s);
}我想把这 \\ 转成 \ 求助!
String s = "\\u4e2d\\u56fd";
//s = s.replace("\\u", "\u");
s = s.replace("\\\\u", "\\u");
System.out.println(s);
}我想把这 \\ 转成 \ 求助!
你可以逐个替换,先把中文字符找出来,再转义嘛!
我写了一个,楼主看看能不能帮上忙
思路:
先找到"\\u",然后找接下去的4个字符(因为中文占两个长度,相当于4位16进制),然后转换成字符。
String s = "China\\u4e2d+\\u56fdRMB";
StringBuilder sbRet = new StringBuilder(s.length()); // 存放结果的
for (int i = 0; i < s.length(); i++) {
if ('\\' == s.charAt(i)) { // 把"\\uXXXX"的字符找出来,转义
if ((i + 1 < s.length()) && 'u' == s.charAt(i + 1)) {
int start = i + 1 + 1;
int end = start + 4;
if (end <= s.length()) {
String strHex = s.substring(start, end);
sbRet.append((char) Integer.parseInt(strHex, 16));
i = end - 1;
}
}
}
else {
sbRet.append(s.charAt(i));
}
}
System.out.println(sbRet.toString());