Java:如何按给定值获取特定行?(。csv)

时间:2014-02-23 09:34:48

标签: java android arrays csv row

首先,我不希望你们中的任何人为我编写代码。我不想被误解。如果你只想举个例子,那就没问题了。

我们认为我有一个csv数据表(逗号分隔),如:

>Temp     Press      Vf       Vg      Uf      Ug

>50       140        0,5      2,5     1,7     2,6

>60       145        0,502    2,6     1,8     2,68

它会继续让我们说10列和200行。如何逐列存储行的值? 为了说明我想获得具有60摄氏度的行。其他值由程序找到并记录为p1=145, vf1=0.502, Vg1=2.6, Uf1=1.8 ...注意:它不仅适用于“临时”。在其他情况下,可能已知的值是“Vf”。

我一直在寻找3天但我找不到我想要的完全相同的东西。总有一些东西不见了。

1 个答案:

答案 0 :(得分:1)

假设您没有使用任何API。

创建一个代表CSV文件的一个条目的类:

public class MyClass {
    private int temp;
    [...]

    public static MyClass createFromCsvEntry(String csvLine) {
        [...]
    }
}

解析CSV文件的数据并将单个条目添加到列表中。您现在可以对这些条目执行搜索:

public class MyClassDao {

    private List<MyClass> data;

    [...] // parsing CSV file and add the entries to data list

    public List<MyClass> searchByTemp(int temp) {
         List<MyClass> result = new ArrayList<>();
         for (MyClass mc : data) {
             if (mc.getTemp().equals(temp)) {
                  result.add(mc);
             }
         }
         return result;
    }

    public List<MyClass> searchByAnyOtherValue(...) {
        [...]
    }
}

当然,如果还有其他非功能性要求,例如性能等,这个解决方案可能不是正确的选择。