包装类——Integer类
将int这样的基础数据类型转换为对象,所有的基础是数据类型都有一个与之对应的类,称为包装类。
- 八大基本数据类对应的包装类名
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
在这里说int对应的包装类Integer类。在Java中,可能会使用到int类型的数据,但可能会有所要求,比如只能使用引用数据类型,但是由于int类型是基本数据类型,无法直接使用,所以需要包装它的类Integer,其他基本数据类型的包装类也是这样。
-
Integer类中有两个构造方法,虽然已经过时但是可以使用
public Integer(int value):根据int值创建Integer对象
public Integer(String s):根据String值创建Integer对象
package com.common.integer; public class IntegerDemo02 { public static void main(String[] args) { Integer i1 = new Integer(100); System.out.println(i1); Integer i2 = new Integer("100"); //Integer i2 = new Integer("abc");NumberFormatException必须是数字字符串 System.out.println(i2); } }
注意:在根据String值创建Integer对象时,String值必须是数字字符串,如果不是数字字符串就会报出异常NumberFormatException
-
使用静态方法获取对象
public static Integer valueOf(int value):返回表示指定的int值的Integer实例
public static Integer valueOf(String s):返回一个保存指定值的Integer对象String
package com.common.integer; public class IntegerDemo03 { public static void main(String[] args) { Integer i1 = Integer.valueOf(100); System.out.println(i1); Integer i2 = Integer.valueOf("100"); //Integer i2 = Integer.valueOf("abc"); System.out.println(i2); } }
-
Integer类中还包含了很多方法,用来处理int类型的数据,例如:int和String之间的相互转换
public static String valueOf(int i):它是String类中的方法,将int类型转换为String类型
public static int parseInt(String s):它是Integer类中的静态方法可以直接用类名.方法名调用,将String类型转换位int类型
public int intValue():它是Integer类中的方法,返回Integer的值为int,因为它不是静态方法不能直接用类名.方法名来调用
int->String:
package com.common.integer; public class IntegerDemo04 { public static void main(String[] args) { int number=100; //方式1: String s1=""+number; System.out.println(s1);//字符串类型的100 //方式2: //public static String valueOf(int i) String s2=String.valueOf(number); System.out.println(s2); } }
String->int:有两种方法,一种是先将String类型转换为Integer,使用上面的静态方法获取对象,再将Integer转换为int;另外一种是直接使用Integer类中的方法,将String类型转换为int类型
package com.common.integer; public class IntegerDemo04 { public static void main(String[] args) { String s="100"; /* 方式1: String->Integer->int String->Integer Integer->int */ Integer i=Integer.valueOf(s);//String->Integer //public int intValue() int x=i.intValue(); System.out.println(x);//输出100为int类型 /* 方式2: public static int parseInt(String s) */ int y=Integer.parseInt(s); System.out.println(y); } }
-
案列:字符串中的数据排序
有一个字符串:“91 27 46 38 50”,请写出程序实现最终输出结果是:“27 38 46 50 91”
思路:
1.定义一个字符串
2.把字符串中的数据存储到一个int类型的数组中
- 得到字符串中的每一个数字数据
public String[] split(String regex)
- 定义一个int数组,把String[]数组中的每一个元素存储到int数组中
public static int parseInt(String s)
3.对int数组进行排序
4.把排序后的int数组中的元素进行拼接得到一个字符串,拼接采用StringBuilder来实现
5.输出结果
package com.common.integer;
import java.util.Arrays;
public class IntegerDemo05 {
public static void main(String[] args) {
String s="91 27 46 38 50";
String[] strArray = s.split(" ");
int[] arr=new int[strArray.length];
for (int i = 0; i < arr.length; i++) {
arr[i]=Integer.parseInt(strArray[i]);//把字符串数据转为int数据
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);//得到int类型的元素
}
//对int数组进行排序
Arrays.sort(arr);
//创建StringBuilder对象
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]).append(" ");
}
}
String result = sb.toString();
//输出结果
System.out.println("result:"+result);
}
}