转义符的问题,求大神!!
思路:
先找到"\\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());