我正在寻找一个简单的答案,似乎无法找到一个。在Java中铸造int到char
我只是想看看下面是否有效。我想取整数7并把它变成字符'7'。这是否允许:
int digit = 7;
char code = (char) digit;
预先感谢您的帮助!
我正在寻找一个简单的答案,似乎无法找到一个。在Java中铸造int到char
我只是想看看下面是否有效。我想取整数7并把它变成字符'7'。这是否允许:
int digit = 7;
char code = (char) digit;
预先感谢您的帮助!
此转换是允许的,但结果不会是你所期望的,因为char 7
is the bell character whereas '7'
is 55
(0x37
)。由于数字字符的顺序是从'0'
在48
(0x30
)开始,只需添加'0'
,然后将结果作为char
进行投射。
char code = (char) (digit + '0');
您也可以看看的Unicode characters,其中可打印的ASCII字符相同的代码。
如果数字是0之间和9:
int digit = 7;
char code = (char)(((int)'0')+digit);
不需要明确地将''0'扩展为'int'。 –
'7'
is Unicode code point U+0037
.由于它是在Basic Multiligual Plane的码点,并且由于char
是一个UTF-16代码单元,并且该平面中的Unicode代码点和UTF-16代码单元之间存在一对一映射,您可以依靠这样的:
(char) ('0' + digit)
不认为'7'
为ASCII 55,因为防止char
有很好的理解......欲了解更多详情,请参阅here。
没有。该char
'7'
可以从int
7
在以下方面获得:
int digit = 7;
char code = Integer.toString(digit).charAt(0);
code = Character.forDigit(digit, 10);
整型是不一样的INT和性格是不一样的字符。也试试看看它是否有效。 –
'(char)('0'+ digit)'将起作用 – fge
这可能对您有用:http://stackoverflow.com/questions/17984975/convert-int-to-char-in-java – Thibstars