包装类_自动装箱与自动拆箱与包装类_基本类型与字符串类型之间的相互转换
自动装箱与自动拆箱
由于我们经常要做基本类型与包装类之间的转换,从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); } }