Java从Array转换为String到int

时间:2015-06-07 16:52:02

标签: java arraylist

我有这个方法,我想从ArrayList中获取整数 并将它们存储到int但它给我这个错误消息:

Exception in thread "main" java.lang.ClassCastException: java.lang.String 
cannot be cast to java.lang.Integer

下面是代码:

 public static void convertList() {
    ArrayList list= new ArrayList();
    list.add(0, 1);
    list.add(1, 4);
    list.add(2, 5);
    list.add(3, 10);
    int a=0;
    for (Object str : list) {
       a=(Integer.parseInt((String) str));
        System.out.println(a);

    }


}

我做错了什么?

2 个答案:

答案 0 :(得分:1)

这行有问题:

  

a =(Integer.parseInt((String)str));

将Object转换为String java支持各种方式。

您可以使用String.valueof(str)

ArrayList list = new ArrayList();
list.add(0, 1);
list.add(1, 4);
list.add(2, 5);
list.add(3, 10);
int a = 0;
for (Object str : list) {
    a = Integer.parseInt(String.valueOf(str));
    System.out.println(a);

}

或者您可以添加一个带有Object的""+来将类型更改为String。

ArrayList list = new ArrayList();
list.add(0, 1);
list.add(1, 4);
list.add(2, 5);
list.add(3, 10);
int a = 0;
for (Object str : list) {
    a = Integer.parseInt("" + str);
    System.out.println(a);

}

或者,您可以使用toString()方法。

a = Integer.parseInt(str.toString());

要详细了解例外,请点击here

答案 1 :(得分:0)

您有此错误,因为您尝试将Integer转换为String,但您想转换它。只有当我们有这个类或子类的对象时,我们才能将对象强制转换为某个类。

如果要将Integer转换为String,则可以使用方法String.valueOf或obj.toString

但在你的情况下,最好使用整数列表而不是对象列表:ArrayList。在这种情况下,您不需要隐藏String

中的值