【问题标题】:java assignment in charchar中的java赋值
【发布时间】:2013-10-16 15:47:31
【问题描述】:

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

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

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

【问题讨论】:

  • 你为什么不试试呢?
  • (A) 完全合法。
  • 数字不是字符。
  • 只是 B 不正确,缺少单引号。

标签: java char


【解决方案1】:

A 和 C 都是正确的

char a = 0x1234;

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

char b = \u1234;//B

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

char c = '\u1234';

char is

char:char 数据类型是单个 16 位 Unicode 字符。它有 最小值“\u0000”(或 0)和最大值“\uffff”(或 65,535(含)。

所以它是有效的。

【讨论】:

    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

    • 为什么?解释你的答案
    • 字符 c = 0x1234; ,因为它的值以 0X 开头,所以它是一个有效的十六进制值。因此正确。字符 c = '\u1234';它是有效的 u 代码并且正确地被 '' 包围,因此它也是正确的。
    • 你应该在答案本身中解释它 - 不是每个人都会阅读 cmets
    猜你喜欢
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 2020-12-10
    • 2016-06-23
    • 2011-12-05
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多