将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据
常用的操作之一:用于基本数据类型与字符串之间的转换
| 基本数据类型 |
包装类 |
| byte |
Byte |
| short |
Short |
| int |
Integer |
| long |
Long |
| float |
Float |
| double |
Double |
| char |
Character |
| boolean |
Boolean |
Integer包装类
Integer类的构造方法
| 方法名 |
说明 |
| Integer(int value) |
根据int值创建Integer对象(过时) |
| Integer(String s) |
根据String值创建Integer对象(过时) |
| static Integer valueOf(int i) |
返回表示指定int值的Integer实例 |
| static Integer valueOf(String s) |
返回一个保存指定值Integer对象String |
注:Integer类的valueOf方法是静态方法,可直接通过Integer.valueOf()调用,其返回值应该是一个对象
1 2 3 4 5 6 7 8
| public class Test { public static void main(String[] args) { Integer i1 = Integer.valueOf(100); Integer i2 = Integer.valueOf("100"); System.out.println(i1); System.out.println(i2); }
|
int和String之间的相互转换
- int转换为String
static String valueOf(int i):返回int参数的字符串表现形式,该方法是String类中的方法
1 2 3 4 5 6 7 8 9 10 11 12
| public class Test { public static void main(String[] args) { int num = 100; String s1 = "" + num; System.out.println(s1); String s2 = String.valueOf(num); System.out.println(s2); } }
|
- String转换为int
static int parsenInt(String s):将字符串解析为int类型,该方法是Integer类中方法
parse英文释义:语法分析
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class Test2 { public static void main(String[] args) { String s = "100"; Integer i1 = Integer.valueOf(s); int x = i1.intValue(); System.out.println(x); int y = Integer.parseInt(s); System.out.println(y); } }
|
案例:对字符串中数据进行排序
需求:有一个字符串:”91 27 46 38 50” 对其数据进行排序,并输出字符串
使用String类中split方法对字符串进行分割,其返回值是一个字符串数组
定义一个int型数组,使用Integer类中parseInt方法把字符串数组转成int型数组
使用StringBuilder类中append方法对int型数组中元素进行拼接,得到一个字符串 append英文释义:追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public class Test { public static void main(String[] args) { String s1 = "91 27 46 38 50"; String[] strArray = s1.split(" "); int[] arr = new int[strArray.length]; for (int i = 0; i < strArray.length; i++) { arr[i] = Integer.parseInt(strArray[i]); } Arrays.sort(arr); StringBuilder s2 = new StringBuilder(); for (int i = 0; i < arr.length; i++) { if (i == arr.length - 1) s2.append(arr[i]); else { s2.append(arr[i]); s2.append(" "); } } String result = s2.toString(); System.out.println(result); } }
|
自动装箱和拆箱
装箱:基本数据类型转换为对应的包装数据类型
拆箱:反之
1 2 3 4 5 6 7 8 9 10
| public class Test { public static void main(String[] args) { int i = 100; Integer ii = Integer.valueOf(i); i = ii.intValue();
Integer iii = 100; i = iii; } }
|
注:如果对包装类类型数据进行操作,最好先进行判断是否为null
只要是对象,在使用前就必须进行不为null的判断
自动装箱(拆箱)在jdk5之后的版本就可以实现了。其实联想到String类就能明白。String类不是基本数据类型,但是他的操作方式和基本数据类型又很相似,这里就应该是系统对String类操作的一个简化。