基本数据类型对象包装类

来源:互联网 发布:留学新加坡的利弊知乎 编辑:程序博客网 时间:2024/06/05 00:36

基本数据类型对象包装类

*为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作
*用于描述该对象的类就称为基本数据类型包装类。
*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对象转成基本数据类型值
*整数具备不同的体现
*十进制-->其他进制。
*其他进制-->十进制
*十进制--->其他进制
*System.out.println(Integer.toBinaryString(60))
*System.out.println(Integer.toOctalString(60))
*System.out.println(Integer.toHexString(60))
*其他进制-->十进制
* parseInt("string",radix)
* */


自动装箱:
int num = 4;
Integer i = 4;//jdk1.5以后 自动装箱 简化书写
i = i + 6;//i = new Integer(i.intValue() + 6);//i.intValue()自动拆箱
Integer a = new Integer(127);
Integer b = new Integer(127);
System.out.println(a==b);//false
System.out.println(a.equals(b));//true equals 比较的是值
Integer x = 129;
Integer y = 129;
System.out.println(x==y);//jdk1.5以后,自动装箱,如果装箱的是一个字节,那么该数据会被共享不会重新开辟空间,这里以127为分解线,-128-127为true
System.out.println(x.equals(y));//true

练习:

对一个字符串的数值进行从小到大的排序。

 “20 78 9 -7 88 36 29"

import java.util.Arrays;


public class WrapperTest {
private static final String SPACE_SEPARATOR = " ";
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/
 * 思路:
 * 1 排序  
 * 2 如何获取到这个字符串中的这些需要排序的数值
 * 字符串中其实都是空格来对数值进行分割的
 * 所以就用字符串对象的切割方法将大串变成多个小串
 * 3 数值最终变成小字符串,怎么变成一个int数呢?
 * 字符串-->基本类型可以使用包装类
 * */
String numStr = "20 78 9 -7 88 36 29";
System.out.println(numStr);
numStr = sortString(numStr);
System.out.println(numStr);
}


private static String sortString(String numStr) {
// TODO Auto-generated method stub
// 1 将字符串变成字符串数组
String[] str_arr = stringToArray(numStr);
// 2 将字符串数组变成int数组
int[] num_arr = toIntArray(str_arr);
// 3 对int数组排序
mySortArray(num_arr);
// 4 将排序后的int数组变成字符串
String temp = arrToString(num_arr);
return temp;
}


public static String arrToString(int[] num_arr) {
// TODO Auto-generated method stub
StringBuilder sb = new StringBuilder();
for(int i = 0;i<num_arr.length;i++){
if(i!=num_arr.length-1)
sb.append(num_arr[i]+SPACE_SEPARATOR);
else
sb.append(num_arr[i]);
}

return sb.toString();
}


public static void mySortArray(int[] num_arr) {
// TODO Auto-generated method stub
Arrays.sort(num_arr);

}


public static int[] toIntArray(String[] str_arr) {
// TODO Auto-generated method stub
int[] arr = new int[str_arr.length];
for(int x = 0;x<str_arr.length;x++){
arr[x] = Integer.parseInt(str_arr[x]);
}
return arr;
}


public static String[] stringToArray(String numStr) {
String[] str_arr = numStr.split(SPACE_SEPARATOR);
return str_arr;
}


}

0 0
原创粉丝点击