概念:
基本数据类型有8种.基本数据类型效率高,但是功能及其有限,只能做加减乘除运算.为了对基本数据类型进行更多的操作,Java为每种基本数据类型提供了对应的类(包装类),
作用:
用于基本数据类型与字符串之间的转换
将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据
常用的操作之一:用于基本数据类型与字符串之间的转换(”123″->123)
基本类型对应的包装类:
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
Integer类:
概念:
包装一个对象中的原始类型 int 的值
Integer类构造方法:
方法名 | 说明 |
---|---|
public Integer(int value) | 根据 int 值创建 Integer 对象(过时) |
public Integer(String s) | 根据 String 值创建 Integer 对象(过时) |
public static Integer valueOf(int i) | 返回表示指定的 int 值的 Integer 实例 |
public static Integer valueOf(String s) | 返回一个保存指定值的 Integer 对象 String |
public static void main(String[] args) {//public static Integer valueOf(int i):返回表示指定的 int 值的 Integer 实例Integer i = Integer.valueOf(1998);System.out.println(i);//public static Integer valueOf(String s):返回一个保存指定值的Integer对象 StringInteger i2 = Integer.valueOf("1998");System.out.println(i2);}
自动拆箱和自动装箱:
自动装箱:
把基本数据类型转换为对应的包装类类型
自动拆箱:
把包装类类型转换为对应的基本数据类型
public static void main(String[] args) {// 自动装箱 i = i + 200; i + 200 自动拆箱把i转int进行计算;;i = 100 + 200;Integer i = 100;i += 200;System.out.println(i);int i2 = i; //自动拆箱System.out.println(i2);Integer i3 = null;i3 += 200;System.out.println(i3); // 报错NullPointerException,为null可以转给Integer,但是无法转给int,所以报错}
NullPointerException:
应用程序应抛出此类的实例以指示null对象的其他非法用法
总结:
所以不管是不是Integer类型,只要是对象,在使用前就必须做非空判断
常用方法:
方法名 | 说明 |
---|---|
public static byte parseByte(String s) | 将字符串参数转换为对应的byte基本类型。 |
public static short parseShort(String s) | 将字符串参数转换为对应的short基本类型。 |
public static int parseInt(String s) | 将字符串参数转换为对应的int基本类型。 |
public static long parseLong(String s) | 将字符串参数转换为对应的long基本类型。 |
public static float parseFloat(String s) | 将字符串参数转换为对应的float基本类型。 |
public static double parseDouble(String s) | 将字符串参数转换为对应的double基本类型。 |
public static boolean parseBoolean(String s) | 将字符串参数转换为对应的boolean基本类型。 |
int和String类型的相互转换:
int转换为String:
- 直接在数字后加一个空字符串
- 通过String类静态方法valueOf()
String转换为int:
先将字符串数字转成Integer,再调用valueOf()方法
通过Integer静态方法parseInt()进行转换
代码演示:
public static void main(String[] args) {int i1 = 100;String s = "100";// int转换为String 方法一:直接加双引号String s2 = i1 + "";System.out.println(s2);// int转换为String 方法二:通过String类静态方法valueOf()String s3 = String.valueOf(i1);System.out.println(s3);// String转换为int 通过Integer静态方法parseInt()进行转换int i2 = Integer.parseInt(s);System.out.println(i2);}
字符串数据排序:
需求:有一个字符串:“91 27 46 38 50”,请写程序实现最终输出结果是:27 38 46 50 91
public static void main(String[] args) {// 定义字符串String s = "91 27 46 38 50";//把字符串中的数字数据存储到一个int类型的数组中String[] strArray = s.split(" ");//定义一个int数组,把 String[] 数组中的每一个元素存储到 int 数组中int[] arr = new int[strArray.length];for (int i = 0; i < arr.length; i++) {arr[i] = Integer.parseInt(strArray[i]);}//对 int 数组进行排序Arrays.sort(arr);for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}