一个与转义字符\u有关的问题
问题描述:
假如有2个字符串变量a,b通过以下方式被赋值:
String a = "1f"; String b = "\u001f";
请教各位,如何只通过变量a对第3个字串变量c赋值,让
b.equals(c);
能够反回true值?
答
[code="java"]
public static void main(String[] args) {
String a = "1f";
String b = "\u001f";
int n = a.length();
int code = 0;
for (int i = 0; i < n; i++) {
code = code * 16 + Integer.parseInt(a.substring(i, i + 1), 16);
}
String c = String.valueOf((char) code);
System.out.println(b.equals(c));
}
[/code]
答
没看懂,可能描述清楚一点?
答
这样不行吧
a是一个普通的字符串
b是一个unicode的编码的字符
这两个就不是一类东西了,这样的强制加上来没有多少意义呀
如果非要转,可以这样做
\u001f 这个表示的是一个编码的对应值,其实也就是一个数字
我们可以对a进行分割,然后根据进制转换成相应的数字,然后再转换成b对应的unicode的值
答
[code="java"]a="\u001f"[/code]肯定true :)