将基本数据类型(8种:int..)封装成对象的好处就是可以在对象中封装更多的功能和方法来操控该数据
常见的操作就是:用于基本数据类型与字符串之间的转换
基本数据类型对象包装类一般用于基本类型和字符串之间的转换
基本类型----->字符串
1.基本类型数值+""
2.用string类中的valueOf(基本类型数值)
3.用Integer.ValueOf();
字符串-->基本类型数值
1.使用包装类中的静态方法XXX parseXXX("XXXX")比如:int parseInt("123")/boolean parseBoolean("true"),但是Character没有parse,多余
2.如果字符串被Integer进行对象的封装
可使用非静态的方法intValue()
将一个Integer对象转成基本类型数值
(先将字符串封装成对象,然后再用XXXValue转换)
public class Main {
public static void main(String[] args)
{ /*
* 基本数据类型包装类
* 为了方便基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作
* 用于描述该对象的类就是基本数据类型包装类
*
* byte Byte
* short Shrot
* int Integer
* long Long
* double Double
* char Character
* boolean Boolean
*
*/
int num;
System.out.println(Integer.MAX_VALUE);//int的最大值 2147483647
System.out.println( Integer.toBinaryString(6));//转换成二进制
Integer x = new Integer("4");
//System.out.println(x);
int xx = Integer.parseInt("1234");//将字符串转化为int,且parseInt方法是静态的
System.out.println(xx);
if(Boolean.parseBoolean("true"))
{
Integer xInteger = new Integer("123");
<span style="white-space:pre"> </span>System.out.println(xInteger.intValue());//将"123"转化为int
}
}
进制转换
public class Main {
public static void main(String[] args)
{
/*十进制 -> 其他进制*/
System.out.println(Integer.toBinaryString(6));//二进制
System.out.println(Integer.toOctalString(10));//八进制
System.out.println(Integer.toHexString(20));//十六进制
System.out.println(Integer.toString(50, 4));//把50以 四进制 的表现
/*其他进制 -> 十进制*/
System.out.println(Integer.parseInt("110",2));//将110视为二进制的表现形式,并将其转换为十进制
System.out.println(Integer.parseInt("3C",16));
}
}
自动装箱拆箱
public class Main {
public static void main(String[] args)
{
Integer a = new Integer("3");
Integer b = new Integer(3);
System.out.println(a == b);//两个new地址肯定不一样
System.out.println(a.equals(b));//equals比较的是内容
System.out.println(a.compareTo(b));
int num = 5;
num++;
Integer xInteger = 5;//xInteger = new Integer(5)->自动装箱
xInteger++;//XInteger = XInteger + 1 实际操作 xInteger = new Integer(xInteger.intValue()+1)
//注意异常
//JDK1.5以后,自动装箱,如果装箱是一个字节,那么该数据会被共享,不会重新开辟空间
Integer x = 128;
Integer y = 128;
System.out.println(x == y);//也就是128以前true,128及128以后是false
System.out.println(x.equals(y));//true
}
}
关于自动装箱与拆箱:基本数据类型值赋值给了引用数据类型值才装箱,和基本数据类型做运算时才拆箱。
练习:
import java.util.Arrays;
/*
* 对一个字符串中的数值进行从小到大的排序
* "123 2 5 652 7 -3 4 456 456 12 489"
*/
public class Main {
private static final String SPS_SIGAL = " ";//ctrl+shift+X小写变大写,大写变小写+Y
public static void main(String[] args) {
String str = "123 2 5 652 7 -3 4 456 456 12 489";
String[] arr = StringToArray(str);
int aa[] = StringToInt(arr);
sort(aa);
StringBuilder string = IntToString(aa);
show(string);
}
public static StringBuilder IntToString(int[] arr) {
StringBuilder SB = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1)
SB.append(arr[i]);
else
SB.append(arr[i] + ",");
}
return SB;
}
public static int[] StringToInt(String[] arr) {
int aa[] = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
aa[i] = Integer.parseInt(arr[i]);
}
return aa;
}
public static String[] StringToArray(String str) {
String[] arr = str.split(SPS_SIGAL);
return arr;
}
public static void sort(int[] arr) {
Arrays.sort(arr);// Arrays类中提供了排序方法
/*
* for(int i = 0;i<arr.length-1;i++) { for(int j =
* 0;j<arr.length-1-i;j++) { if(arr[j] > arr[j+1]) swap(arr,j,j+1); } }
*/
}
public static void swap(int[] arr, int i, int j) {
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
public static void show(StringBuilder string) {
System.out.println(string);
}
}