包装类_自动装箱与自动拆箱与包装类_基本类型与字符串类型之间的相互转换

自动装箱与自动拆箱
由于我们经常要做基本类型与包装类之间的转换,从Java 5 ( JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。例如︰

 

Integer i - 4;//自动装箱。相当于Integer i - Integer.valueOf(4);
i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5;

//加法运算完成后,再次装箱,把基本数值转成对象。
自动装箱与自动拆箱
package Integer_Demo01;

import java.util.ArrayList;

/*
       自动装箱与自动拆箱:
    基本类型的数据和包装类之间可以自动的相互转换
        JDK1.5之后出现的新特性
 */
public class Demo02_Integer {
    public static void main(String[] args) {
        /*
        自动装箱:直接把int类型的整数赋值给包装类
        Integer in = 1;就相当于Integer in = new Integer(1);
         */
        Integer in = 1;

        /*
        自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本类型的数据,再参与计算
        in + 2;就相当于in.intvatue()+3 =3;
        in = in + 2;就相当于in = new Integer(3)自动装箱
         */
        in = in+2;
        System.out.println(in);
    //ArrayList集合无法直接存储整数,可以存储Integer包装类
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);;//自动装箱list.add( new Integer(1 ));
        Integer integer = list.get(0);;//自动装箱list.add( new Integer(1 ));


    } 
}

基本类型与字符串类型之间的相互转换

基本类型转换为string
基本类型转换String总共有三种方式,查看课后资料可以得知,这里只讲最简单的一种方式:

基本类型直接与""相连接即可;如:34+""

String转换成对应的基本类型
除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型:
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基本类型。代码使用(仅以Integer类的静态方法parseXxx为例)如∶

package Integer_Demo01;
/*
        基本类型与字符串之间的转换
        基本类型-->字符串
    1.基本类型数据的值+””最简单的方式(工作中常用)
    2.使用包装类中的静态方法
    static string tostring(int i)返回一个表示指定整数的 String对象。
    3.使用String类中的静态方法
    static string valueof(int i)返回int参数的字符串表示形式。
    字符串-->基本类型
    使用包装类的静态方法parseXX(""字符串"")
    Integer类:static int parseInt(string s)
    Double类:static double parseDouble( String s)
 */
public class Demo03_Integer {
    public static void main(String[] args) {
            //  基本类型-->字符串
        String s1 =100+"";
        System.out.println(s1+200);//100 200

        String string = Integer.toString(100);
        System.out.println(string+200);//100 200

        String s = String.valueOf(100);
        System.out.println(s+200);//100 200

        //字符串-->基本类型
        int i = Integer.parseInt("100");
        System.out.println(i+200);

        int a = Integer.parseInt("a");//NumberFormatException:For input String: 'a'数字格式化异常
        System.out.println(a);


    }
}

 

posted @ 2022-07-05 19:49  zj勇敢飞,xx永相随  阅读(40)  评论(0编辑  收藏  举报