Java中字符串转换成数字的问题,以下是我转化用的四种方法.请大神们帮忙详细解释一下 这四种方法的区别

String num1="88";
//第一种转法:
Integer n=new Integer(num1);
//第二种转法:
Integer n1=Integer.valueOf(num1);
//第三种转法:
Integer n2=Integer.getInteger(num1);
//第四种转法:
Integer n3=Integer.parseInt(num1);

第一种:使用Integer类的构造方法,产生一个新的Integer对象,引用保存在n中;
第二种:通过Integer类的静态方法valueOf将num1标识的数字转换成Integer类型的对象;
第四种:通过Integer类的静态方法parseInt将字符窜num1转换成其标识的int值,注意,这里parseInt方法返回的实际上是int类型的一个整数,而不是一个Integer对象,这里应用了jdk1.5以后新增加的自动解包和打包功能,可以直接将一个基础类型的数字赋值给对应的包装类,这里Integer就是int基础类型的包装类,所以Integer n3 = 12;这种写法在1.5以前是非法的。

最后说第三种:这个我基本没用过,但是看了一下api,这个getIneger方法的说明是:确定具有指定名称的系统属性的整数值。这个是跟系统有关的一个取值方法,而不是字符串转换数值的方法,你这段程序如果运行后n3的值应该是null。

第二种和第四种的区别:
第二种返回类型为Integer 第四种方法返回类型为int

虽然Integer 和int在1.5以后相互进行赋值操作时不会报错,但是在学习的时候最好搞清楚,还是有区别的
温馨提示:答案为网友推荐,仅供参考
相似回答