包装类

在java中,很多类的方法都需要接受引用类型的对象,此时就无法将基本数据类型的值传入。为了解决这样的问题,JDK提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象。
包装类将基本数据类型进行装换。

charCharacter
intInteger

剩下的都是将首字母大写

装箱和拆箱

包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念。

装箱

将基本数据类型转换为包装类
下面是以int类型的包装类Integer为例来演示装箱:

int a = 20;
Integer in  = new Integer(a);
System.out.println(in.toStirng());

拆箱:

将包装类转换为基本数据类型

Integer num = new Integer(20);
int a = 10;
int sum = num.intValue()+a;
System.out.println("sum="+sum);
//sum = 20;

Integer的intValue()方法
可以将Integer类型的值转为int类型,这个方法可以来进行拆箱操作。

pareselnt()方法
它是一个静态方法,用于将一个字符串形式的数组转为int类型。

int w = Integer.parseInt("20");
int h = Integer.parseInt("10");
for(int i=0;i<h;i++){
	StringBuffer sb = new StringBuffer();
	for(int j=0;j<w;j++){
		sb.append("*");
	} 
	System.out.println(sb.toString());
	}

在使用包装类的时候需要注意以下几点:

  1. 包装类都重写了Object类中的toString()方法,已字符串的形式返回被包装的基本数据的值。
  2. 除了Character外,包装类都有valueOf(String s )方法,可以根据String类型的参数创建包装类对象。
  3. 除了Character外,包装类都有parseXxx(String s)方法,将字符串转换为对应基本类型的数据。

自动拆箱和装箱

自动装箱

int num = 20;
Integer number = num;//自动装箱

自动拆箱

Integer number =  new Integer(18);
int number2 = number;//自动拆箱

混合运算

public staticInteger add(Integer a,Integer b)
{
	return a+b;
}

字符串排序程序设计

public class WrapperTest {
	private static final String SPACE_SEPARATOR = " ";
	public static void main(String[] args) {
		String numStr = "20 52 78 65 32 16 2 96";
		System.out.println(numStr);
		numStr = sortStringNumber(numStr);
		System.out.println(numStr.toString());
		
	}
	
	public static String sortStringNumber(String number) {
		//将字符串变成字符数组
		String [] str_arr = stringToArray(number);
		//将字符数组变成int数组
		int [] num_arr = toIntArray(str_arr);
		//对int数组进行排序
		mySortArray(num_arr);
		//将排好的int数组变成字符串
		String temp = arrayToString(num_arr);
		return temp;
	}
	//将字符串变成字符数组
	public static String arrayToString(int [] num_arr) {
		StringBuffer sb = new StringBuffer();
		for(int x= 0;x<num_arr.length;x++) {
			if(x!=num_arr.length-1) {
				sb.append(num_arr[x]+SPACE_SEPARATOR);
			}
			else {
				sb.append(num_arr[x]);
			}
		}
		return sb.toString();
	}
	public static void mySortArray(int[] num_arr) {
		Arrays.sort(num_arr);
	}
	public static int[] toIntArray(String[] str_arr) {
		int [] arr = new int [str_arr.length];
		for(int i=0;i<arr.length;i++) {
			arr[i] = Integer.parseInt(str_arr[i]);
		}
		return arr;
	}
	public static String[] stringToArray(String numStr) {
		String[]  str_arr = numStr.split(SPACE_SEPARATOR);
		return str_arr;
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值