• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

包装类

开发技术 开发技术 2周前 (04-30) 6次浏览

包装类

概述

将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据

常用操作之一:用于基本数据类型与字符串之间的转换

  • 基本数据类型的首字母大写,就是包装类
  • 除了int–Integer、char–Character
package com.Lei.integer;

public class IntegerDemo01 {
    public static void main(String[] args) {
        //需求:判断一个数据是否在int范围内
        //public static final int MAX_VALUE 持有最大值的常数为 int可以为2^31 -1。
        //public static final int MIN_VALUE 持有最小值的常数为 int可以为-2^31 。
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.MAX_VALUE);
    }
}

Integer类的概述和使用

Integer类包装一个对象中的原始类型int的值。

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 
package com.Lei.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);

         */

        Integer i1 = Integer.valueOf(100);
        System.out.println(i1);

        Integer i2 = Integer.valueOf("100");
        //Integer i2 = Integer.valueOf("abc");//NumberFormatException
        System.out.println(i2);
    }
}

int 和String的相互转换

int转换为String

public static String valueOf(int i);返回int参数的字符串表示形式。

String转换为int

public static int parseInt(String s);将字符串参数解析为带符号的十进制整数。
package com.Lei.integer;

public class IntegerDemo03 {
    public static void main(String[] args) {
        //int --- String
        int number = 100;
        //方式1
        String s1 = "" + number;//进行的字符串运算
        System.out.println(s1);

        //方式2
        //public static String valueOf(int i);返回int参数的字符串表示形式。
        String s2 = String.valueOf(number);
        System.out.println(s2);
        System.out.println("=========");

        //String---int
        String s = "100";
        //方式1
        //String---Integer---int
        Integer i = Integer.valueOf(s);
        //public int intValue();返回 Integer的值作为 int 。
        int x =i.intValue();
        System.out.println(x);
        //方法2
        //public static int parseInt(String s);//静态方法可以直接调用
        int y = Integer.parseInt(s);
        System.out.println(y);
    }
}
package com.Lei.integer;

import java.util.Arrays;

//将一个字符串进行排序
public class IntegerTest {
    public static void main(String[] args) {
        //1.定义一个字符串
        String s = "93 21 70 8 65";

        //2.把字符串中的数字数据存储到一个int类型的数组中
        String[] strArray = s.split(" ");
//        for (int i =0;i<strArray.length;i++){
//            System.out.println(strArray[i]);
//        }

        //3.定义一个int数组,把String[]数组中的每一个元素存储到int数组中
        int[] arr = new int[strArray.length];
        for (int i =0;i<arr.length;i++){
            arr[i]=Integer.parseInt(strArray[i]);//把String数据转换为int数据
        }
//        for (int i=0;i<arr.length;i++){
//            System.out.println(arr[i]);
//        }

        //4.对int数组进行排序
        Arrays.sort(arr);

        //5.把排序好的int数组中的元素进行拼接得到一个字符串,这里拼接采用StringBuilder来实现
        StringBuffer sb = new StringBuffer();
        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();

        //6.输出拼接的结果
        System.out.println("result:"+result);

    }
}

自动装箱和拆箱

  • 装箱:把基本数据类型转换为对应的包装类类型
  • 拆箱:把包装类类型转换为对应的基本数据类型
package com.Lei.integer;

public class IntegerDemo04 {
    public static void main(String[] args) {
        //装箱
        Integer i = Integer.valueOf(100);
        Integer ii =100;//自动装箱

        //拆箱
        //ii += 200;
//        ii = ii.intValue() + 200;//ii.intValue()拆箱
        ii += 200;//i + 200先自动拆箱,i = i + 200再自动装箱
        System.out.println(ii);

        Integer iii = null;
        if (iii != null){
            iii += 300;//NullPointerException
        }


    }
}

注意:

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

  • 只要是对象,在使用前就必须进行不为null的判断


程序员灯塔
转载请注明原文链接:包装类
喜欢 (0)