常用对象API( 基本数据类型对象包装类 )
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用对象API( 基本数据类型对象包装类 )相关的知识,希望对你有一定的参考价值。
基本数据类型对象包装类 :
为方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。
用于描述该对象的类就称为基本数据类型对象包装类。
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; } }
以上是关于常用对象API( 基本数据类型对象包装类 )的主要内容,如果未能解决你的问题,请参考以下文章
从零开始的Java开发1-5-2 包装类与基本数据类型常用API基本数据类型与包装类字符串之间的转换包装类的初始值与比较对象常量池