我有一个名为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)));