【发布时间】:2014-03-05 21:20:41
【问题描述】:
我有一个 csv 文件中的数字列表,已导出到 ArrayList。现在,问题是我的 ArrayList 是 String 而不是 double。我试过使用
ArrayList<Double> arr = new ArrayList<Double>();`
但它给了我一个错误。
我想删除 ArrayList 中小于 0.1 的任何数字。这是我的代码:
public class Example1
{
public static void main(String[] args) throws InvalidFormatException, IOException{
ArrayList arr=new ArrayList();
File f=new File("C:\\java\\marchcalllast.csv");
Scanner in=new Scanner(f).useDelimiter(",");
while(in.hasNext())
{
arr.add(in.next());
}
for (int i = 0; i < arr.size(); i++){
Double item = Double.valueOf(arr.get(i));
if (item < 0.1) {
arr.remove(i);
}
}
System.out.println(arr);
它给了我以下错误:
错误:没有找到适合 valueOf(java.lang.Object) 的方法 方法 java.lang.Double.valueOf(double) 不适用 (实参java.lang.Object不能通过方法调用转换为double) 方法 java.lang.Double.valueOf(java.lang.String) 不适用 (实参java.lang.Object无法通过方法调用转换为java.lang.String)
【问题讨论】:
-
不要使用原始类型。
-
另外,最好在将其添加到列表之前检查您的 while 双精度值。
-
Excel 内置了非常易于使用的过滤器。