下面是一个代码片段,int a = 1;char b = (char) a;System.out.println(b);但是我得到的是空输出。int a = '1';char b = (char) a;System.out.println(b);我将得到1作为输出。有人可以解释一下吗?如果我想像第一个代码片段一样将int转换为char,该怎么办?
3 回答
MYYA
TA贡献1868条经验 获得超4个赞
int a = 1;
char b = (char) a;
System.out.println(b);
会打印出ascii值为1的char(首字符,这是不可打印的)。
int a = '1';
char b = (char) a;
System.out.println(b);
将打印出具有ascii值49的字符(一个对应于'1'的字符)
如果要转换数字(0-9),则可以将数字加48并进行转换,例如Character.forDigit(a, 10);。
如果要转换intas ascii值,则可以使用Character.toChars(48)例如。
慕姐4208626
TA贡献1852条经验 获得超7个赞
似乎您正在寻找Character.forDigit方法:
final int RADIX = 10;
int i = 4;
char ch = Character.forDigit(i, RADIX);
System.out.println(ch); // Prints '4'
还有一种方法可以将字符从char转换回int:
int i2 = Character.digit(ch, RADIX);
System.out.println(i2); // Prints '4'
请注意,通过更改,RADIX您还可以支持十六进制(基数为16)以及最大为36(或Character.MAX_RADIX称为36)的任何基数。
添加回答
举报
0/150
提交
取消