Java基础之(十)基本类型的类型转换

来源:互联网 发布:美国类似知乎的网站 编辑:程序博客网 时间:2024/05/21 14:48

1.自动类型转换

如果系统支持把某种基本数据类型的值直接赋给另一种基本数据类型的变量,则这种方式被称为自动类型转换。当把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,系统将可以进行自动类型转换。就如同有两瓶水,当把小瓶里的水倒给大瓶里的水时不会有任何问题。

public class AutoTest{    public static void main(String[] args)    {        int a = 6;        //int类型可以自动转换为float类型        float f = a;        System.out.println(f);        byte b = 9;        //下面代码将出错,byte类型不能自动转换为char类型        //char c = b;        double d = b;        System.out.println(d);    }}
输出结果:6.09.0

不仅如此,当把任何基本类型的值和字符串值进行连接运算时,基本类型的值将自动转换为字符串类型,虽然字符串类型不是基本类型,而是引用类型。因此如果希望把基本类型的值转换为对应的字符串时,可以把基本类型的值和一个空字符串进行连接。看下面这个例子:

public class PrimeAndString{    public static void main(String[] args)    {        //下面代码是错误的,因为5是一个整数,不能直接赋值给一个字符串        String str1 = 5;        String str2 = 3.5f + "";        //下面输出3.5        System.out.println(str2);        //下面输出7Hello!        System.out.println(3+4+"Hello!");        //下面输出Hello!34,因为Hello!+3会把3当成字符串处理,而后再把4当成字符串处理        System.out.println("Hello!" + 3 + 4);    }}

上面程序中有一个“3+4 + Hello!”表达式,这个表达式先执行“3+4”运算,这是执行两个整数之间的运算,得到结果7,然后执行“7+“Hello!””运算,此时会把7当成字符串处理,从而得到7Hello!。反之对于“Hello!”+3运算,得到一个Hello!3字符串,再和4进行连接运算,4也被转换为字符串进行处理。

2.强制类型转换

语法格式:(targetType)value;
例子如下:

public class NarrowValue{    public static void main(String[] args)    {        int i = 23;        //强制把一个int类型转换为byte类型的值        byte b = (byte)i;        //输出23        System.out.println(b);        double d = 3.33;        //强制把一个double类型转换为int类型的值        int j = (int)d;        //输出3        System.out.println(j);    }}

通常情况下,字符串不能直接转换为基本数据类型,但通过基本数据类型的包装类则可以实现把字符串转换为基本数据类型。例如把字符串转换为int类型:

{    public static void main(String[] args)    {        String a = "45";        //使用Integer方法将一个字符串转换为int类型        int i = Integer.parseInt(a);        //输出45        System.out.println(i);    }}

java为8种基本数据类型都提供了对应的包装类:
boolean—>Boolean;
byte —>Byte;
short —>Short;
int —>Integer;
long —>Long;
char —>Character;
float —>Float;
double —>Double;
包装类都提供了一个parseXxx(String str)静态方法来将字符串转换为基本类型。

0 0
原创粉丝点击