2

我正在学习java,一个问题的答案似乎是错误的:问题:以下哪些是合法的?

char c = 0x1234;//A
char c = \u1234;//B
char c = '\u1234';//C

在书中答案是 C,但我认为它应该是 A 和 C。有人请为我验证一下吗?

4

2 回答 2

6

A和C都是正确的

char a = 0x1234;

该文字0x1234是一个十六进制整数文字。它的值适合char原始类型,所以它是有效的;

char b = \u1234;//B

不是有效的表示法,因此不会编译。

char c = '\u1234';

char

char:char 数据类型是单个 16 位 Unicode 字符。它的最小值为“\u0000”(或 0),最大值为“\uffff”(或 65,535,包括在内)。

所以它是有效的。

于 2013-10-16T15:55:30.100 回答
1

char c = 0x1234;//A -- 正确

因为它的值以 0X 开头,所以它是一个有效的十六进制值。因此正确。

char c = \u1234;//B --- 不正确

不是有效的 u 代码,因为它没有被''包围。

char c = '\u1234';//C -- 正确

它是有效的 u 代码并且正确地被 '' 包围,因此它也是正确的。

于 2013-10-16T15:50:49.070 回答