我正在寻找一个直截了当的答案而且似乎无法找到答案。
我只想查看以下内容是否有效。我想取整数7并将其变成字符' 7'。这是允许的:
int digit = 7;
char code = (char) digit;
提前感谢您的帮助!
答案 0 :(得分:2)
允许进行此转换,但结果不会符合您的预期,因为char 7
is the bell character whereas '7'
is 55
(0x37
)。由于数字字符是有序的,从'0'
开始48
(0x30
),只需添加'0'
,然后将结果转换为char
。< / p>
char code = (char) (digit + '0');
您还可以查看Unicode characters,其中可打印的ASCII字符是相同的代码。
答案 1 :(得分:0)
更容易做
String s = "0" + digit;
char t = s.charAt(0);
答案 2 :(得分:0)
如果数字在0到9之间:
int digit = 7;
char code = (char)(((int)'0')+digit);
答案 3 :(得分:0)
'7'
is Unicode code point U+0037
.
由于它是Basic Multiligual Plane中的代码点,因为char
是UTF-16代码单元,并且此代码中的Unicode代码点之间存在一对一映射平面和UTF-16代码单元,你可以依靠这个:
(char) ('0' + digit)
不要将'7'
视为ASCII 55,因为这会妨碍对char
的充分理解...有关详细信息,请参阅here。
答案 4 :(得分:0)
不。可以通过以下方式从char
'7'
检索int
7
:
int digit = 7;
char code = Integer.toString(digit).charAt(0);
code = Character.forDigit(digit, 10);