基本数据类型对象包装类 :
为方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。
用于描述该对象的类就称为基本数据类型对象包装类。
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
该包装对象主要用于基本类型和字符串之间的转换;
基本类型 转成字符串 :
1. 基本类型数值 + " "
2. 用String类中的静态方法 valueOf (基本类型数值);
字符串转成基本数值:
**** 1. 使用包装类中的静态方法 xxx parseXxx( " xxx类型的字符串");
int parseInt ( " intstring " ) ;
long parseLong ( " longstring " ) ;
boolean parseBoolean ( " booleanstring " ) ;
只有 Character 没有 parse 方法
2 . 如果字符串被Integer进行对象的封装。
可使用另一个非静态的方法。 intValue ();
将一个Integer对象转成基本数据类型值。
整数具备不同的进制体现:
十进制 转 其他进制: toBinaryString (); toOctalString ( ); toHexString( );
其它进制 转 十进制 : parseInt ( " String " , radix);
package cn.itcast.p2.wrapper.demo; public class WrapperDemo { /** * @param args */ public static void main(String[] args) { /* * 基本数据类型对象包装类。 * 为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。 * 用于描述该对象的类就称为基本数据类型对象包装类。 * * byte Byte * short Short * int Integer * long Long * float Float * double Double * char Character * boolean Boolean * * 该包装对象主要用基本类型和字符串之间的转换。 * * 基本类型--->字符串 * 1,基本类型数值+"" * 2,用String类中的静态方法valueOf(基本类型数值); * 3,用Integer的静态方法valueO(基本类型数值); * * 字符串--->基本类型 * 1,使用包装类中的静态方法 xxx parseXxx("xxx类型的字符串");***** * int parseInt("intstring"); * long parseLong("longstring"); * boolean parseBoolean("booleanstring"); * 只有Character没有parse方法 * 2,如果字符串被Integer进行对象的封装。 * 可使用另一个非静态的方法,intValue(); * 将一个Integer对象转成基本数据类型值。 * * */ // System.out.println(Integer.MAX_VALUE); // System.out.println(Integer.toBinaryString(-6)); // int num = 4; // Integer i = new Integer(5); // int x = Integer.parseInt("123"); // System.out.println(Integer.parseInt("123")+1); // Integer i = new Integer("123"); // System.out.println(i.intValue()); /* * 整数具备不同的进制体现。 * * 十进制-->其他进制。 * toBinaryString * toOctalString * toHexString * * 其他进制-->十进制。 * parseInt("string",radix) * */ // 十进制-->其他进制。 System.out.println(Integer.toBinaryString(60)); System.out.println(Integer.toOctalString(60)); System.out.println(Integer.toHexString(60)); // System.out.println(Integer.toString(60,16)); // 其他进制-->十进制。 // System.out.println(Integer.parseInt("3c",16)); Integer a = new Integer("89"); Integer b = new Integer(300); System.out.println(a==b); System.out.println(a.equals(b)); // System.out.println(3>3); System.out.println(a.compareTo(b)); } }
JDK 1.5 自动装箱拆箱 :
package cn.itcast.p2.wrapper.demo; public class WrapperDemo2 { /** * @param args */ public static void main(String[] args) { int num = 4; num = num + 5; Integer i = 4;//i = new Integer(4);自动装箱 简化书写。 i = i + 6;// i = new Integer(i.intValue() + 6); //i.intValue() 自动拆箱 // show(55);// Integer a = new Integer(128); Integer b = new Integer(128); System.out.println(a==b);//false System.out.println(a.equals(b));//true Integer x = 129;//jdk1.5以后,自动装箱,如果装箱的是一个字节,那么该数据会被共享不会重新开辟空间。 Integer y = 129; System.out.println(x==y);// System.out.println(x.equals(y));//true } public static void show(Object a){//Object a = new Integer(55); System.out.println("a="+a); } }
练习 :
package cn.itcast.p2.wrapper.test; import java.util.Arrays; /* * 对一个字符串中的数值进行从小到大的排序。 * * "20 78 9 -7 88 36 29" * * 思路: * 1,排序,我很熟。可是我只熟int。 * 2,如何获取到这个字符串中的这些需要排序的数值? * 发现这个字符串中其实都是空格来对数值进行分隔的。 * 所以就想到用字符串对象的切割方法将大串变成多个小串。 * 3,数值最终变成小字符串,怎么变成一个int数呢? * 字符串-->基本类型 可以使用包装类。 * * */ public class WrapperTest { private static final String SPACE_SEPARATOR = " "; /** * @param args */ public static void main(String[] args) { String numStr = "20 78 9 -7 88 36 29"; System.out.println(numStr); numStr = sortStringNumber(numStr); System.out.println(numStr); } /** * * @param numStr * @return */ public static String sortStringNumber(String numStr) { //1,将字符串变成字符串数组。 String[] str_arr = stringToArray(numStr); //2,将字符串数组变成int数组。 int[] num_arr = toIntArray(str_arr); //3,对int数组排序。 mySortArray(num_arr); //4,将排序后的int数组变成字符串。 String temp = arrayToString(num_arr); return temp; } 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]+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; } /** * @param numStr */ public static String[] stringToArray(String numStr) { String[] str_arr = numStr.split(SPACE_SEPARATOR); return str_arr; } }