【问题标题】:Java - Problem with casting an int to charJava - 将 int 转换为 char 的问题
【发布时间】:2019-04-05 09:38:24
【问题描述】:

我对从 int 转换为 char 数据类型有点困惑,这就是我所拥有的;

int k = 3;
System.out.println((char)k + " " + k)

输出应该是

3 3

然而,我得到了这个

 3

有人可以向我解释为什么会这样吗?

【问题讨论】:

标签: java casting char int


【解决方案1】:

char'3' 没有数值 3。它的数值是 51。

这将打印 3:

int k = 51;
System.out.println((char)k);

char 的数值为 3 是不可见字符。

如果要将单个数字int转换为对应的char,可以这样写

int k = 3;
char three = (char)('0' + k);
System.out.println(three);

【讨论】:

  • 我明白了...那么将 int 转换为 char 的正确方法是什么?
【解决方案2】:

除了其他答案:如果您确定0 <= k <= 9,您可以使用

System.out.println((char)(k + '0'));

打印整数的“charified”版本。 如果k < 0k > 9,则没有一个字符(字符)来描述它。在这种情况下,你必须使用一个字符串,它基本上是一个字符数组:

System.out.println(Integer.toString(k));

【讨论】:

    【解决方案3】:

    (char) 3 的 ASCII 值是:文本结束

    如果要获取数值,需要使用数值 51,即 ASCII 值 3:

    int k = 51;
    System.out.println((char) k + " " + k);
    

    这给出了输出:

    3 51

    完整的ASCII表可以在here找到

    【讨论】:

      猜你喜欢
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 2014-05-02
      • 2013-12-11
      • 2012-08-07
      相关资源
      最近更新 更多