Java的数据类型的转换一般分为三种,分别是:简单数据类型之间的转换、字符串与其他数据类型的转换、其他实用数据类型的转换。
一、简单数据类型之间的转换
在java中,整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)——int——long——float——double。
简单数据类型之间的转换又可以分为:低级到高级的自动类型转换、高级到低级的强制类型转换、包装类过渡类型能够转换。
1)自动类型转换
低级变量可以直接转换为高级状态,这叫自动类型转换,例如:
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
如果低级类型为char型,向高级状态转换时,会转换成对应的ASCII码值,例如:
char c;
int i=c;
System.out.printlin(i);
输出为:99
对于byte、short、char三种类型而言,它们是同级别的,因此,不能相互自动转换,可以使用下述 的强制类型转换:
short i=99;
char c=(char)I;
2)强制类型转换
将高级变量转换为低级变量时,情况会复杂一些:
int i=99;
byte b=(byte)i;
char c=(char)c;
这中转换可能会导致溢出或精度下降。
3)包装类过渡类型转换
Java的包装类就是可以直接将简单类型的变量表示为一个类。Java共有六个包装类,分别是Boolean、Character、Long、Float和Double,从字面上可以看出它们分别对应于 boolean、char、int、long、float和double,而String和Date本身就是类,不存在包装类的概念。
在进行简单数据类型之间的转换时,可以利用包装类进行中间过渡,一般情况下,首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了,例如当希望把float类型转换为double型时:
float f1=100.00f;
Float F1=new float(f1);
Double d1=F1.doubleValue();
二、字符串型与其他数据类型的转换
通过查阅类库中各个类提供的成员方法可以看到,几乎从java.lang.Object类派生的所有类都提供了toString()方法,即将该转换为字符串。例如:Character、Integer、Float、Double、Boolean、Short等类的toString()方法用于将字符、整数、浮点数、双精度数、逻辑数、短整型等类型转换为字符串。
三、将字符型直接作为数值转换为其他数据类型
将字符型变量转换为数值型变量实际上有两种对应关系:一种是将其转换成对应的ASCII码;另一种是转换关系,例如’1’就是指数值1,而不是ASCII码。