Java包装类(Wrapper)、基本数据类型、String类之间的转换

来源:互联网 发布:android源码 编辑:程序博客网 时间:2024/05/16 12:47

一、基本数据类型和包装类之间的转化


1、基本数据类型 to 包装类

public void test1() {        //1.通过构造器,构造器参数加上双引号也可以,但双引号内容要与对应包装类类型一致        Integer i1 = new Integer(12);//i1 = 12        Integer i2 = new Integer("12");//i2 = 12        //Integer i2 = new Integer("12adfa");//报错        Float f1 = new Float("12.3F");//i3 = 12.3        //Float f1 = new Float("12.3abc");//报错        System.out.println("i1=" + i1 + "      i2=" + i2 + "      f1=" + f1);        //特殊对于Boolean,当参数是"ture"返回true,其他返回false        Boolean b1 = new Boolean("abc");//b1 = false        Boolean b2 = new Boolean("true");//b2 = true        System.out.println("b1=" + b1 + "   b2=" + b2);        //但不加双引号时,只能写false或true,其他会报错        //Boolean b3 = new Boolean(abc);//报错        Boolean b3 = new Boolean(false);//b3 = false        Boolean b4 = new Boolean(true);//b4 = true        System.out.println("b3=" + b3 + "   b4=" + b4);        //包装类默认值是null        Order o = new Order();        //2.通过valueOf方法,传递参数可以是字符串也可以是对应类型数据        Integer i3 = Integer.valueOf(30);//i3 = 30        //3.自动包装的方法,详见Test3()        System.out.println("\no.i1=" + o.i1 + "       o.i2=" + o.i2 +                "\no.d1=" + o.d1 + "     o.d2=" + o.d2 +                "\no.b1=" + o.b1 + "   o.b2=" + o.b2 +                 "\ni3=" + i3);}class Order {        int i1;//i1 = 0        Integer i2;//i2 = null        double d1;//d1 = 0.0        Double d2;//d2 = null        boolean b1;//b1 = false        Boolean b2;//b2 = null}

运行结果:

变量 变量值 i1 12 i2 12 f1 12.3 b1 false b3 false b4 true o.i1 0 o.i2 null o.d1 0.0 o.d2 null i3 30

2、包装类 to 基本数据类型

public void test2() {        Integer i1 = new Integer(14);        Float f1 = new Float(12.3F);        //1.调用包装类的XxxValue()方法        int i2 = i1.intValue();//i2 = 14        float f2 = f1.floatValue();//f2 = 12.3        //2.通过自动拆包,详见Test3()        System.out.println("i2=" + i2 + "   f2=" + f2);}

运行结果:

变量 变量值 i2 14 f2 12.3

3、自动装箱拆箱

public void test3() {        Boolean b1 = false;        //1.自动装箱        Integer i1 = 15;//i4 = 15        //Boolean b1 = "ada";//报错        //Integer i1 = "15";//报错        //2.自动拆箱        int i2 = i1;//i2 = 15        System.out.println("i1=" + i1.intValue() +                "   b1=" + b1.booleanValue() +                "   i2=" + i2);}

运行结果:

变量 变量值 i1 15 b1 false i2 15


二、基本数据类型、包装类与String类之间的转化


1、基本数据类型、包装类 to String类

public void test4() {        int i1 = 2;        Boolean b1 = true;        //1.基本数据类型 + ""        String s1 = i1 + "";//s1="2"        //2.调用String类的静态的重载的valueOf()方法(从目标类里找方法)        String s2 = String.valueOf(i1);//s2 = "2"        String s3 = String.valueOf(b1);//s3 = "true"        System.out.println("s1=" + s1 +                "   s2=" + s2 +                "   s3=" + s3);}

运行结果:

变量 变量值 s1 2 s2 2 s3 true

2、String类 to 基本数据类型、包装类

public void test5() {        String str1 = "12";        String str2 = "true";        //调用目标包装类的parseXxx(String str)方法或者valueof()方法 (同上,从目标类里找方法)        int i1 = Integer.parseInt(str1);//i1 = 12        int i2 = Integer.valueOf(str1);//i2 = 12        boolean b1 = Boolean.parseBoolean(str2);//b1 = true        System.out.println("i1=" + i1 + "   b1=" + b1 + "   i2=" + i2);}

运行结果:

变量 变量值 i1 12 b1 true i2 12


三、parseXxx()和valueOf(),toString()的区别


1、parseXxx( ):比如说parseInt( )就是把String类型转化为int类型

如:

String a= "123";int b = Integer.parseInt(a);

这样b就等于123了


2、ValueOf( ):比如说 Integer.valueOf( ) 是把String类型 或者 int类型 转化为Integer类型 ( 注意:是Integer类型,而不是int类型 )

如:

Integer c =Integer.valueOf("123");Integer d =Integer.valueOf(15);

这时候c = 123、d = 15


3、toString( )可以把一个引用类型转化为String字符串类型

Integer a = new Integer(123);String b =a.toString();

这时候b就是 “123” 了


如有错误,欢迎指正

1 0