Java【基本数据类型--包装类--String类型】之间的转换|自动装箱与自动拆箱

package at1014;

import org.junit.Test;

//基本数据类型 包装类 String 之间的转换
public class TypeConversion {
	// 基本数据类型转化为包装类-->使用包装类的构造器new(Byte Short Integer Long Float Double Character
	// Boolean)
	@Test
	public void basicToWrapper() {
		int a1 = 10;
		Integer b1 = new Integer(a1);
		System.out.println(b1.toString());// 10 包装类中重写了toString(),也是打印内容,而不是地址

		String a2 = "1234";
		Integer b2 = new Integer(a2);
		System.out.println(b2.toString());// 1234
	}

	// 包装类转化为基本数据类型-->调用包装类的xxxValue()方法(charValue(),intValue(),doubleValue()....)
	// 包装类的对象不能直接进行加减乘除,转化为基本数据类型就可以了
	@Test
	public void wrapperToBasic() {
		Character c1 = new Character('A');
		char c2 = c1.charValue();
		char c3 = ++c2; // 'B'
		System.out.println(c3);
	}

	// JDK5.0加入了新特性:自动装箱与自动拆箱(:基本数据类型与包装类之间直接赋值即可)
	// 自动装箱:替代之前需要通过调用包装类的构造器才能转换成包装类
	// 自动拆箱:替代之前需要通过xxxValue()才能转换成基本数据类型
	@Test
	public void autoConversion() {
		int a1 = 10;
		Integer a2 = a1; // 自动装箱
		System.out.println(a2.toString());

		Double d1 = 10.0; // 自动装箱
		System.out.println(d1.toString());

		double d2 = d1; // 自动拆箱
		d2 += 12.0;
		System.out.println(d2);
	}

	// 基本数据类型、包装类--->String类型
	@Test
	public void otherToString() {
		// 方式一:连接运算 + ""
		String a1 = 2 + ""; // "2"

		Integer a2 = 3;// 自动装箱
		String a3 = a2 + "";// 3 a2自动拆箱成基本数据类型int,再和""做连接运算变成String类型
		System.out.println(a1 + "," + a3);

		// 方式二:调用String类的.valueOf()方法
		String b1 = String.valueOf(4); // "4"

		Integer b2 = 5; // 自动装箱
		String b3 = String.valueOf(b2); // "5"
		System.out.println(b1 + "," + b3);

		// 方式三:调用包装类里的toString()方法
		int c1 = 6;
		Integer c2 = c1; // 自动装箱
		String c3 = c2.toString();
		System.out.println(c3); // "6"

	}

	// String类型--->基本数据类型、包装类
	@Test
	public void stringToOther() {
		// 调用包装类的 Xxx.parseXxx()方法 (转化前提:要符合逻辑,abcd转化为int自然是不行的)
		String s1 = "1234";
		int a1 = Integer.parseInt(s1); // 先发生了转化(Integer),之后进行了自动拆箱(int)
		a1++;
		System.out.println(a1); // 1235

		String s2 = "true";
		boolean b2 = Boolean.parseBoolean(s2);
		System.out.println(b2); // true
		
		String s3 = "true123";
		boolean b3 = Boolean.parseBoolean(s3);
		System.out.println(b3); // false (.parseBoolean定义的是true则true(且不区分大小写),非true字符串则false)
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值