基本类型包装类

基本类型包装类

基本类型包装类概述:

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

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

基本数据类型包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
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
         
 //public static Integer valueOf(int i)返回表示指定的int值得Integer实例
 Integer i1= Integer.valueOf(100);
 System.out.println(i1);
 //public static Integer valueOf(String s)返回一个保存指定值得Integer对象 String
 Integer i2= Integer.valueOf("100");
 System.out.println(i2);
  }
 }
int 和String的相互装换:

基本类型包装类的最常见操作就是:用于基本类型和字符串之间的相互转换

1.int 装换为 String

public static StringvalueOf(int i) :返回 int 参数的字符串表示形式。该方法是String类中的方法

2.String 装换为int

public static int parseInt(String s): 将字符串解析为Int类型,该方法是Integer类中的方法

 package BZN;public class IntegerDemo2 {
     public static void main(String[] args) {
         //int------String
         int number = 100;
         //方式1
         String s1 = ""+number;
         System.out.println("String类型:"+s1);
         //方式2
         //public static String valueOf(int i)
         String s2=String.valueOf(number);
         System.out.println("String类型:"+s2);
         System.out.println("------------------");
         //String------int
         String s="100";
         //方式1
         //Sring --- Integer --- int
         Integer i=Integer.valueOf(s);//String转Integer
         //public int inValue()
         int x=i.intValue();//Integer转int
         System.out.println("int类型:"+x);
         //方式2
         //public static int parseInt (String s)
         int y=Integer.parseInt(s);
         System.out.println("int类型:"+s);
    }
 }
 运行结果:
 String类型:100
 String类型:100
 ------------------
 int类型:100
 int类型:100

案例:字符串中数据排列

需求:有一个字符串:"90 27 46 38 50",请写程序实现最终输出结果是:"27 38 46 50 91"

思路:

  1. 定义一个字符串

  2. 把字符串中的数字数据储存到一个Int类型数据中

    • 得到字符串中每一个数字数据?

      public String[] split(String regex)

    • 定义一个int数组,把String[]数组中的每一个元素储存到int数组中

      public static int parselnt(String s)

  3. 对int数组进行排序

  4. 把排序后的int数组中的元素进行拼接到一个字符串,这里拼接采用StringBuilder来实现

  5. 输出结果

 public class IntegerDemo3 {
     public static void main(String[] args) {
         //定义一个字符串
         String s="91 27 46 38 50";
         //把字符串中的数字数据储存到一个Int类型数据中
         String[] strArray = s.split("");
         //       for (int i=0;i<strArray.length;i++){
         //           System.out.println(strArray[i]);
         //       }        
         //定义一个int数组,把String[]数组中的每一个元素储存到int数组中
         int[] arr=new int[strArray.length];
         for(int i=0;i<arr.length;i++) {
             arr[i] = Integer.parseInt(strArray[i]);
        }
         //       for (int i=0;i<arr.length;i++){
         //           System.out.println(arr[i]);
         //       }
         //对int数组进行排序
         Arrays.sort(arr);
         //把排序后的int数组中的元素进行拼接到一个字符串,这里拼接采用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);
    }
 }

自动装箱和拆箱

  • 装箱:把基本数据类型转换为对应的包装类类型

  • 拆箱:把包装类类型转换为对应的基本数据类型

 package BZN;
 /** * 装箱:把基本数据类型转换为对应的包装类类型
     * 拆箱:把包装类类型转换为对应的基本数据类型
 */
 public class IntegerDemo4 {
     public static void main(String[] args) {
         //装箱:把基本数据类型转换为对应的包装类类型
         //i就是100对应的包装类类型
         Integer i = Integer.valueOf(100);
         //自动装箱
         Integer ii=100;
         //JDK5后,后台自动帮我们写了Integer.valueOf(100);
         //拆箱:把包装类类型转换为对应的基本数据类型
         //需要实现ii + =200;
         //手动装箱
         ii=ii.intValue() + 200;
         //自动装箱
         ii +=200;
         //隐含了自动装箱和自动装箱
         System.out.println(ii);
         Integer iii= null;
         if (iii!=null) {
             iii += 300;//NullPointerException
        }
    }
 }

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

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

posted @ 2021-08-17 17:01  小布托里  阅读(235)  评论(0)    收藏  举报