我正在学习java,一个问题的答案似乎是错误的: 问题:以下哪项是合法的?
char c = 0x1234;//A
char c = \u1234;//B
char c = '\u1234';//C
在书中答案是C,但我认为它应该是A和C.任何人都请为我验证?
答案 0 :(得分:6)
A和C都是正确的
char a = 0x1234;
文字0x1234
是十六进制整数文字。它的值适合char
基元类型,因此它是有效的;
char b = \u1234;//B
无效符号,因此无法编译。
char c = '\u1234';
char:char数据类型是一个16位Unicode字符。它有 最小值'\ u0000'(或0)和最大值'\ uffff'(或 65,535(含))。
所以这是有效的。
答案 1 :(得分:1)
char c = 0x1234; // A - 正确
因为它的值以0X开头,所以它是有效的十六进制值。因此正确。
char c = \ u1234; // B ---不正确
不是有效的u代码,因为它没有包含''。
char c ='\ u1234'; // C - 正确
它是有效的u代码并被''正确包围,因此它也是正确的。