(1)char字符型数据可以转换成任意一种数值类型,反之亦然。将整数转换成插入型数据时,只用到该数据的低十六位,其余部分被忽略。如:char ch=(char)0xAB0041;输出ch+‘A’;
(2)将一个浮点值转换成char型时,首先将浮点值喜欢换成int,然后将整数值转换成char。如:char ch=(char)65.25;输出char值为‘A’
(3)当char型数据转换成数值型时,这个字符的Unicode码就被转换成某个特定的数值类型。
如果转换结果适用于目标变量,就可以使用隐式转换方式;否则,必须使用显式转换方式。例如,因为'a'的统一码是97,它是在一个字节的范围内,所以就可以使用隐式转换方式:
byte b='a';
int i='a';
但是,因为统一码\uFFF4不适用于一个字节范围内,下面的转换就是不正确的: byte b='\uFFF4';
为了强制赋值,就必须使用显式转换方式: byte b=(byte)'\uFFF4';
0~FFFF之间的任何一个十六进制正整数都可以隐式地转换成字符型数据。而任何不在此范围内的其他数值都必须显式地转换为char型。
注意 :所有数值运算符都可以用在char型操作数上。如果另一个操作数是一个数字或字符,那么char型操作数就会被自动转换成一个数字。如果另一个操作数是一个字符串,字符就会与该字符串相连。
注意 小写字母的统一码是从'a'的统一码开始,然后是'b'、'c'、...、'z'的统一码所构成的连续整数。大写字母的情况也是一样的。此外,'a'的统一码比'A'的统一码大,所以,'a'-'A'与'b'-'B'相等。因此,对应于小写字母ch的大写字母是(char)('A'+(ch-'a'))。
以上来自《Java语言程序设计基础篇》——机械工业出版社 4.3.3 自己练习练习就学会了哦