我有一个名为caseArrayList的字符串数组列表。我在数组列表中有几个单词和一些数字...我试图从数组列表中获取数字并生成整数,以便可以使用这些数字进行一些计算。这是我的代码不起作用:

我的数组列表如下所示:打开,打开,打开,打开,打开,打开,打开我的箱子300000 100 25000 0 500 400000 100000 75000 1 5 500000 75 25 750000 1000 10 200000 400 750,如果在for循环中使用System.out.print(casesArrayList.get(j) + " ")

    for (int j = 0; j < casesArrayList.size(); j++)
       {
        if (!casesArrayList.get(j).equals("My Case") &&  !casesArrayList.get(j).equals("Opened")) {
          System.out.print(casesArrayList.get(j) + " ");
       }


//此时输出为:300000 100 25000 0 500 400000 100000 75000 1 5 500000 75 25 750000 1000 10 200000 400750

//错误在下一行:

       int c = (int) casesArrayList.get(j);
       System.out.print(c + " ");
    }


由于parseInt,valueOf或(int)不起作用,我如何从数组列表中取出数字并进行变量处理。

我编辑了代码:

for ( int j = 0; j < casesArrayList.size(); j++) {
        if (!casesArrayList.get(j).equals("My Case") &&  !casesArrayList.get(j).equals("Opened")) {
          System.out.print(casesArrayList.get(j) + " ");
       }

        try {
            int c = Integer.parseInt(casesArrayList.get(j));
            System.out.print(casesArrayList.get(j) + " ");
        } catch (Exception e) {
            System.out.println(e);
       }
          System.out.print(c + " ");
    }


错误消息仍然:
找不到适合parseInt(java.lang.Object)的方法

方法java.lang.Integer.parseInt(java.lang.String)不适用;

http://i.stack.imgur.com/fxl0o.png

非常感谢你们,我不是Java专家,我犯了一些非常明显的错误,但是我终于使它工作了……@ Suresh是正确的,完美的代码是:

 for (int j = 0; j < casesArrayList.size(); j++) {

         if (!casesArrayList.get(j).equals("My Case") &&  !casesArrayList.get(j).equals("Opened")) {
             total = total + (Integer.parseInt((String)casesArrayList.get(j)));
             n = n + 1;
         }
         average = total / n;
    }
    System.out.println();
    System.out.println("The total is "+ total);
    System.out.println("The average is "+ average);

最佳答案

由于casesArrayList是一个字符串ArrayList,它的每个值都是一个String,因此您需要解析该字符串。不是直接演员

try {
     System.out.println(Integer.parseInt(casesArrayList.get(j)));
} catch(NumberFormatException ex){
   // do something here if it is not a number
}


Integer.parseInt()

如我所见,您提到的屏幕截图是,它不是String ArrayList,并且您将获得Object(不确定)类型。尝试将其强制转换为String,然后尝试。

  System.out.println(Integer.parseInt((String)casesArrayList.get(j)));

10-08 18:10