Java-将int转换为char的问题

时间:2018-11-01 07:07:54

标签: java casting char int

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

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

输出应该是

3 3

但是,我得到了这个

 3

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

3 个答案:

答案 0 :(得分:4)

char'3'的数字值为3。其数字值为51。

这将打印3:

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

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

如果要将一个数字int转换为相应的char,则可以写

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

答案 1 :(得分:1)

(char) 3的ASCII值为:文本结尾

如果要获取数字值,则需要使用数字值51,它是ASCII值3:

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

这给出了输出:

  

3 51

可以找到完整的ASCII表here

答案 2 :(得分:1)

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

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

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

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