有两种转换方法:
一种是自动转换,如char
c
=
97,会自动的将int类型的96转换成char的‘a’
另一种是强制类型转换,如int
i
=
97,char
c
=
(char)i
,这样做了之后,char的值也是‘a’
为什么是a呢?因为字符‘a’对应的ASCII值是97.
自动转换一般是用于大的类型向小的类型转换,也叫窄化转换
强制类型转换一般是用于小的类型向大的类型转换,也叫扩展转换
你这不就是char型的么
那个不是乱码,是符号,有些是控制符,打出来就成乱码了,有些本身就是符号,字符“0”-“9”并不对应ascii中的0-9
,而是48-57,也就是说
for(int
i=48;i<=57;i++)
这时打印出来的才是0-9
你这么输出的是ascii码为0到19的字符了,你可以试试
char
begin
=
'0';
for(int
i=0;i<20;i++){
System.out.println((char)(begin+i));
}
看看是你想要的吗