关于从int转换为char数据类型,我有点困惑,这就是我所拥有的;
int k = 3;
System.out.println((char)k + " " + k)
输出应该是
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 < 0
或k > 9
,则没有单个字符(字符)来描述它。在这种情况下,您必须使用一个字符串,该字符串基本上是一个字符数组:
System.out.println(Integer.toString(k));