字符型数据与数值型数据之间的转换

(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 自己练习练习就学会了哦

经验分享 程序员 微信小程序 职场和发展