您的位置:首页 > 移动开发

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

2016-08-01 17:23 639 查看

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

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
}


运行结果:

变量变量值
i112
i212
f112.3
b1false
b3false
b4true
o.i10
o.i2null
o.d10.0
o.d2null
i330

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);
}


运行结果:

变量变量值
i214
f212.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);
}


运行结果:

变量变量值
i115
b1false
i215

二、基本数据类型、包装类与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);
}


运行结果:

变量变量值
s12
s22
s3true

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);
}


运行结果:

变量变量值
i112
b1true
i212

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

如有错误,欢迎指正
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息