下面是一段代码,
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,我该怎么办?
最佳答案
int a = 1;
char b = (char) a;
System.out.println(b);
将打印出带有 Unicode code point 的字符1(开头字符,不可打印;见下表:C0 Controls and Basic Latin,同ASCII)
int a = '1';
char b = (char) a;
System.out.println(b);
将打印出带有 Unicode 代码点 49 的字符(对应于 '1')
如果你想转换一个数字(0-9),你可以给它加上48并强制转换,或者类似Character.forDigit(a, 10);
。
如果您想将 int
转换为 Unicode 代码点,您可以使用 Character.toChars(48)
例如。
关于java - 在java中将int转换为char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17984975/