Java:如何通过给定值获取特定行?(.csv)

标签 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 ... 注意:它不仅适用于“temp”。在其他情况下,已知值可能是“Vf”。

我已经搜索了 3 天,但找不到与我想要的完全相同的东西。总是缺少一些东西。

最佳答案

假设您没有使用任何 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(...) {
        [...]
    }
}

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

关于Java:如何通过给定值获取特定行?(.csv),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21966509/

相关文章:

javascript 不打印/数组

c - 两个数组的总和

java - 无法使用registerlistener来使用Step_counter - Android

Java 防火墙检查?告诉服务器管理员关闭防火墙

java - 重构switch代码中的公共(public)代码

java - Swing 线程安全样板

java - 如何使用 onOptionsItemSelected 将后退按钮从 Activity 制作为 Fragment?

android - 意外转换为 AppCompatButton : layout tag was Button

PHP - 将数组作为可变长度参数列表传递

java - 如何在另一个java程序中编译和运行java程序?