1.包装类
1.1 Integer包装类(int的包装类)
注意事项:
在使用Integer类的时候 如果用的是带String参数的时候
必须是数值的字符串“123”,否则报错:NumberFormatException(数字格式化异常)
(a) 构造方法
方法名 | 作用 |
---|---|
Integer(int value) | 很少使用这个构造函数。 静态工厂valueOf(int) 通常是一个更好的选择,因为它可能产生明显更好的空间和时间性能。 |
Integer(String s) | 很少使用这个构造函数。 使用parseInt(String) 将字符串转换为int 原语,或使用valueOf(String) 将字符串转换为Integer 对象。 |
(b)方法
方法名 | 作用 |
---|---|
public static Integer valueOf(int a) | 把一个int型转换为Integer型 |
public static int parseInt(String s) | 把一个String类型的字符串转换为十进制的整型 |
int与字符串之间的转换(重点)
(1)int—>字符串(String)(开发中用这种方法)
方式一:用 + 号连接符
int number = 100;
String s = ""+number;
(2)用String类里面的valueOf()方法
int number = 100;
String s1 = String.valueOf(number);
System.out.println(s1);
(2)字符串—>int
方式一: 将String —> Integer —>int
String s2 = "100";
Integer integer = Integer.valueOf(s2);
int i = integer.intValue();
方式二:直接把String类转换成int需要用一个方法(Integer方法 parseInt)(重点掌握)
String s3 = "100";
int i1 = Integer.parseInt(s3);
案例:
package ketang_lianxi_Demo02;
/*
需求:
把String s = "91 27 46 38 50"; 按照有序地顺序输出;
分析:
1.先把字符串s的值分开存入到String数组中,这里要用打一个方法String类的split方法
2.把String数组内的元素转换成int型然后在存入到int类型的数组中。(Integer包装类的parseInt方法)
3.利用Arrays数组工具类里面的sort方法排序。
4.用StringBuilder对象接收
5.把StringBuilder对象转回String类型(toString方法)
*/
import java.util.Arrays;
public class StringArrayDemo {
public static void main(String[] args) {
String s = "91 27 46 38 50";
//先把字符串s的值分开存入到String数组中,这里要用打一个方法String类的split方法
String[] s1 = s.split(" ");
//把s1数组中的字符串转换为int型然后在存入int型数组内
//这里需要用到Integer包装类里面的parseInt方法
int [] nums = new int [s1.length];
for (int i = 0; i < s1.length; i++) {
nums[i] = Integer.parseInt(s1[i]);
}
//存入到int型数组内后,在利用数组的工具类Arrays排序
Arrays.sort(nums);
//用StringBuilder对象接收
StringBuilder sb = new StringBuilder();
for (int i = 0; i < nums.length; i++) {
if(nums.length-1==i){
sb.append(nums[i]);
}else{
sb.append(nums[i]).append(" ");
}
}
String s2 = sb.toString();
System.out.println("s2:"+s2);
}
}
1.2基本数据包装类
1.2.1自动装箱和拆箱
装箱:把基本数据类型转换为对象的包装类类型。
拆箱:把包装类类型转换为对应的基本数据类型。
我们只要学习自动装箱和自动拆箱就可以了
1.自动装箱:
将基本数据类型 自动 提升为包装类型
2.自动拆箱:
将包装类型 自动转换为基本数据类型
举例:
ArrayList<Integer> list = new ArrayList<>();
//这属于自动装箱
list.add(10);
list.add(20);
list.add(30);
//这属于自动拆箱
int i = List.get(0);