黑马程序员技术交流社区

标题: valueOf(String s) 和parseInt(String s) 的使用区别在哪里? [打印本页]

作者: 黄嵘才    时间: 2013-1-16 15:56
标题: valueOf(String s) 和parseInt(String s) 的使用区别在哪里?
代码:
/*
* static Integer valueOf(String s)
          返回保持指定的 String 的值的 Integer 对象。
          static int parseInt(String s)
          将字符串参数作为有符号的十进制整数进行分析。
*/

public class Test {

        public static void main(String[] args){
        String num = "12345";
        Integer num1 = Integer.valueOf(num);
        Integer num2 = Integer.parseInt(num);
        System.out.println(num1);
        System.out.println(num2);
        }
}
问题:

基本类型包装类有 两个方法可以将字串Strinng类型的数字字转成他们类型。这里。这两个方法的效果都是一样的。
两个法在用法是什么区别。或是在哪种情况下用valueOF()?,哪种情况下用parse...?,或者都可以?







作者: 夏振博    时间: 2013-1-16 16:32
本帖最后由 arno942 于 2013-1-16 16:43 编辑

static Integer valueOf(String s)
//会把整数字符串包装成Interger类型整数 ,这时整数为引用类型
static int parseInt(String s)
//把整数字符串转换成 int类型的整数  , 这时整数为基本类型
体现的地方可以用集合存数据,  集合只能存引用类型 不能存基本类型,
你可以试下把整数存进集合, 结果存进去了! 是因为它自动包装了 实际存进去的是Integer类型的
java文件:
  1. import java.util.ArrayList;
  2. import java.util.List;

  3. public class Demo {
  4.     public static void main(String[] args) {
  5.         List list = new ArrayList();
  6.         list.add(3);
  7.         for (int i = 0; i < list.size(); i++) {
  8.             System.out.println(list.get(i));
  9.         }
  10.     }
  11. }
复制代码
这是反编译器打开的class文件你可以看编译器都做了哪些事
  1. import java.io.PrintStream;
  2. import java.util.ArrayList;
  3. import java.util.List;

  4. public class Demo
  5. {

  6.     public Demo()
  7.     {
  8.     }

  9.     public static void main(String args[])
  10.     {
  11.         List list = new ArrayList();
  12.         list.add(Integer.valueOf(3));
  13.         for(int i = 0; i < list.size(); i++)
  14.             System.out.println(list.get(i));

  15.     }
  16. }
复制代码

作者: 惠晖    时间: 2013-1-16 16:42
楼上回答的很详细了  ValueOf  变成了一个对象,   parseIng  变成基本数据类型
作者: yong230    时间: 2013-1-16 17:33
解释的很对
作者: 黄锦成    时间: 2013-1-16 19:57
yong230 发表于 2013-1-16 17:33
解释的很对

API那里说明了:valueOf(String)该方法返回一个等于以下值的 Integer 对象: new Integer(Integer.parseInt(s))

parseInt(String)返回的是基本类型int





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2