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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vaf714/article/details/52087540

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


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” 了


如有错误,欢迎指正

猜你喜欢

转载自blog.csdn.net/vaf714/article/details/52087540