一个与转义字符\u有关的问题

一个与转义字符\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 :)