我正在学习java,一个问题的答案似乎是错误的:问题:以下哪些是合法的?
char c = 0x1234;//A
char c = \u1234;//B
char c = '\u1234';//C
在书中答案是 C,但我认为它应该是 A 和 C。有人请为我验证一下吗?
A和C都是正确的
char a = 0x1234;
该文字0x1234
是一个十六进制整数文字。它的值适合char
原始类型,所以它是有效的;
char b = \u1234;//B
不是有效的表示法,因此不会编译。
char c = '\u1234';
char:char 数据类型是单个 16 位 Unicode 字符。它的最小值为“\u0000”(或 0),最大值为“\uffff”(或 65,535,包括在内)。
所以它是有效的。
char c = 0x1234;//A -- 正确
因为它的值以 0X 开头,所以它是一个有效的十六进制值。因此正确。
char c = \u1234;//B --- 不正确
不是有效的 u 代码,因为它没有被''包围。
char c = '\u1234';//C -- 正确
它是有效的 u 代码并且正确地被 '' 包围,因此它也是正确的。