为什么我不能将此字符串转换为int?

时间:2015-04-02 13:25:02

标签: java

我从列表中取出一个值然后将其转换为整数时遇到问题,这样我就可以将它用于不同的数学函数,例如乘法。

当前代码:

int i = 0;
while(i < student_id.size()){
    String finding = student_id.get(i).toString();
    int s101 = ((Integer)score101.get(student101.indexOf(finding))); // <----this is where im having problems
    System.out.println(student_id.get(i)+" "+names.get(i));
    System.out.println("IR101 " + 
                       score101.get(student101.indexOf(finding)) +
                       " IR102 " +
                       score102.get(student102.indexOf(finding)));
    i++;
}

我得到的错误是java.lang.String cannot be cast to java.lang.Integer。这让我感到困惑,因为我认为这本来就是一个对象。我试图将它从一个对象和一个字符串转换为一个整数,但都抛出错误。如何将score101.get(student101.indexOf(finding))转换为int?

2 个答案:

答案 0 :(得分:1)

错误很明显,java.lang.String cannot be cast to java.lang.integer

这意味着score101.get(student101.indexOf(finding))会返回String。如果字符串代表Integer,那么您可以轻松解析它

Integer.parseInt(score101.get(student101.indexOf(finding)))

修改

根据您的评论,字符串为Double,因此您需要使用parseDouble

Double.parseDouble(score101.get(student101.indexOf(finding)))

如果你真的想要它作为int并丢弃小数,你可以调用intValue()将它转换为int(或直接转换)。

Double.parseDouble(score101.get(student101.indexOf(finding))).intValue()

答案 1 :(得分:0)

您可以使用Integer.parseInt(String s)方法

解析字符串