Java int类型转char
前言
最近想随机生成一串包含数字和字母的字符串.但是我发现把int类型的数字通过强制类型转换为char类型字符的时候出现了乱码.
原因
字符'0'
的ASCII
编码值是48
,如果直接通过类似如下的强制类型转换:
1 | char ch=(int) 0; |
得到的字符不是'0'
,而是其他字符。
数字0到9转为’0’到’9’字符的正确做法
先计算出正确的ASCII码在转为字符
使用自动类型转换进行计算
在char类型和int类型进行计算时,会自动把char类型转为int类型,所以可以先把字符'0'
和数字
进行计算得到正确的ASCII
编码值,然后再强制类型转为字符.如下所示:
1 | int i=2; |
直接计算
当然换成如下写法也是可以的.
1 | int i=2; |
Character.forDigit(数字,进制)方法进行转换
1 | int i=2; |