概念
为了方便操作基本数据类型,将其封装成了对象,在对象中定义了属性和行为丰富了该对数据的操作,用于描述该对象的类就称为基本数据类型包装类。
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
Boolean Boolean
该包装对象主要用于基本类型和字符串之间的转换。
基本类型-->字符串
1.基本类型数值+""
2.用String类中的静态方法valueOf(基本类型数值)
3.用Integer的静态方法valueOf(基本类型数值);
字符串-->基本类型
1.使用包装类中的静态方法 xxx parseXxx("xxx类型的字符串")。例如int parseInt("intstring"); long paseLong("longstring");只有Character没有parse方法。
2.如果字符串被Interger进行对象的封装,可使用另一个非静态的方法,intValue();将一个Integer对象转成基本数据类型值。
System.out.println(Integer.parseInt("123"));
Integer i=new Integer("123");
System.out.println(i.intValue());
进制转换
十进制->其他进制
toBinaryString
toOctalString
toHexString
System.out.println(Integer.toBinaryString(60));
System.out.println(Integer.toOctalString(60));
System.out.println(Integer.toHexString(60));
//第二个参数表示x进制
System.out.println(Integer.toString(60,6));
其他进制->十进制
parseInt("string",radix)
System.out.println(Integer.parseInt("110",10));
JDK1.5自动装箱
int num=4;
Integer i=4;//i=new Integer(4);自动装箱,简化书写
i=i+6;//i=new Integer(i.intValue()+6);//i.intValue()自动拆箱
jdk1.5以后,自动装箱,如果装箱的是一个字节,那么该数据会被共享不会重新开辟空间。
Integer a=new Integer(127);
Integer b=new Integer(127);
System.out.println(a==b);
System.out.println(a.equals(b));
Integer x=127;
Integer y=127;
System.out.println(x==y);
System.out.println(x.equals(y));
结果:
false
true
true
true
当Integer一个数值变成128时
Integer a=new Integer(127);
Integer b=new Integer(127);
System.out.println(a==b);
System.out.println(a.equals(b));
Integer x=128;
Integer y=128;
System.out.println(x==y);
System.out.println(x.equals(y));
结果:
false
true
false
true
对一个字符串中的数值进行从小到大排序
"30 46 8 -6 55 40 17"
思路:
1.获取这个字符串中的需要排序的数值,因为字符串中空格对数值分隔,所以可以用字符串对象的切割方法将大串变成多个小串
2.字符串变成小字符串后,字符串->基本类型变成int类型数值,可以使用包装类。
package com.monfolld;
import java.util.Arrays;
public class WrapperTest {
public static void main(String[] args){
String numStr="30 46 8 -6 55 40 17";
System.out.println(numStr);
numStr=sortStringNumber(numStr);
System.out.println(numStr);
}
public static String sortStringNumber(String numStr){
//将字符串变成字符串数组
String[] str_arr=stringToArry(numStr);
//将字符串数组变成int数组
int[] num_arr=toIntArray(str_arr);
//对int数组排序
mySortArray(num_arr);
//将排序后的int数组变成字符串
String temp=arrayToString(num_arr);
return temp;
}
public static String[] stringToArry(String numStr){
String[] str_arr=numStr.split(" ");
return str_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 void mySortArray(int[] num_arr){
Arrays.sort(num_arr);
}
public static String arrayToString(int[] num_arr){
StringBuilder sb=new StringBuilder();
for (int x=0;x<num_arr.length;x++){
if (x!=num_arr.length-1)
sb.append(num_arr[x]+" ");
else
sb.append(num_arr[x]);
}
return sb.toString();
}
}