常用类——包装类

包装类

基本包装类

作用

  • 将基本数据类型封装成对象 的好处 在于可以在对象中定义更多的功能方法操作该数据
  • 常用操作之一:用于基本数据类型 与字符串之间的转换

基本类型对应的包装类

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

Integer类

概述

  • 在对象中包装了一个基本类型 int 的值

构造方法

  • 以下两种方法已经过时,可以使用,但不建议使用
Constructor说明
Integer(int value)根据int值创建Integer对象
public Integer(String s)根据int值创建Integer对象
public class IntegerDemo {
    //通过构造方法来得到Integer对象  过时
    public static void main(String[] args) {
        Integer integer = new Integer(100);
        System.out.println(integer);

        Integer integer1 = new Integer(100);
//        Integer integer2 = new Integer("abs"); NumberFormatException:不是数字字符串
        System.out.println(integer1);
    }
}
  • 建议使用
Constructor说明
public static Integer valueOf(int i)返回表示指定的 int 值的 Integer 实例
public static Integer valueOf(String s)返回一个保存指定值的 Integer 对象 String
public class IntegerDemo2 {
    //推荐使用
    public static void main(String[] args) {
        Integer integer = Integer.valueOf(100);
        System.out.println(integer);

        Integer integer1 = Integer.valueOf("100");//只可以输入数字字符串
        System.out.println(integer1);
    }
}

int 和 String 相互转换

方法名说明
public static String valueOf(int i)返回 int 参数的字符串表示形式(String类中的方法)
public static int parseInt(String s)将字符串解析为 int 类型(Integer类中的方法)

int转换为String

public class Demo02 {
    public static void main(String[] args) {

        //int --> String
        int number = 100;
        //方法1 直接加一个空字符串 不够专业 
        String s1 = "" + number; //做的是字符串连接
        System.out.println(s1);
        //方法2 通过String类静态方法 valueOf  专业 
        String s2 = String.valueOf(number);
        System.out.println(s2);
    }
}

String转换为int

public class Demo03 {
    public static void main(String[] args) {
        //String --> int
        String s = "100";

        //方法1   String -- Integer --int
        Integer i = Integer.valueOf(s);
        int x = i.intValue();
        System.out.println(x);
        //方法2 parseInt方法
        int y = Integer.parseInt(s);
        System.out.println(y);
    }
}

案例

1. int范围

public class Demo {
    public static void main(String[] args) {
        //需求:判断一个数据是否在int范围内
        /*
        Integer:
          public static final int MIN_VALUE
          public static final int MAX_VALUE
         */
        System.out.println(Integer.MIN_VALUE); //-2147483648
        System.out.println(Integer.MAX_VALUE); //2147483647
    }
}

2. 字符串中数据排序

  • 使用到的新方法

    方法名说明
    public String[] split(String regex)通过指定分隔符对字符串进行切片
import java.util.Arrays;

//字符串中数据排序
/*
需求:求一个字符串:"97 27 46 38 50",输出结果:"27 38 46 50 97"
思路:
   1.定义一个字符串
   2.把字符串中的数字存储到一个int类型的数字中
       得到字符串中的每一个数字数据 split方法
       定义一个int数组,把String[]数组中的每一个元素存储到int数组中 parseInt方法
   3.对int数组进行排序
   4.把排序后的int数组中的元素进行拼接得到一个字符串,StringBuilder实现
 */
public class Test {
    public static void main(String[] args) {
        //定义一个字符串
        String s = "97 27 46 38 50";
        //调用String中的split方法
        String[] strArray = s.split(" "); //空格就是字符串s中的空格,如果是97,27,46,38,50,则输入的是逗号
        /*for (int i = 0; i < strArray.length; i++) {
            System.out.println(strArray[i]);
        }*/
        //定义一个长度和strArray数组相同的int数组
        int[] arr = new int[strArray.length];
        //将String[]中的数组元素一一存储到int[]数组中
        for (int i = 0; i <arr.length ; i++) {
            arr[i] = Integer.parseInt(strArray[i]);//利用parseInt方法将String类型转成int类型
        }
        /*for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }*/
        Arrays.sort(arr);// 调用sort方法进行数组排序
        //利用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(" ");
            }
        }
        //将StringBuilder转换成String类
        String result = sb.toString();
        //输出结果
        System.out.println(result);
    }
}

自动拆箱和自动装箱

  • 装箱:把基本数据类型转换为对应的包装类类型
  • 拆箱:把包装类类型转换为对应的基本数据类型
public class Demo04 {
    public static void main(String[] args) {
        //装箱:把基本数据类型转换为对应的包装类类型
        Integer i = Integer.valueOf(100);
        //自动装箱
        Integer ii = 100;

        //拆箱:把包装类类型转换为对应的基本数据类型
        // ii += 200
        //ii = ii.intValue() + 200; //ii.intValue :拆箱
        ii += 200;//自动拆箱
        System.out.println(ii);

        Integer iii = null;
        //需要添加判断if(iii!=null)
        iii +=300; //NullPointerException空指针

    }
}

注意

  • 在使用包装类类型的时候,如果做操作,最好先判断是否为 null

建议

  • 只要是对象,在使用前就必须进行是否为null的判断
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值