从 CSVRecord 获取数据,而无需访问标头值



我正在解密一个字符串以显示多个逗号分隔的值,我想访问各个信息片段,但加密的字符串不包括标头值。

我知道在读取CSV文件时,可以使用例如以下内容访问特定列的信息:

CSVRecord.get(ID);

其中 ID 是表中的标头值,但在不知道标头名称的情况下似乎没有办法访问它。

加密的字符串正在另一个应用程序中解密。

有没有办法在不知道标头值的情况下读取逗号分隔值的访问,或者是否有任何 CSV 的替代方案?

您可以简单地迭代生成的记录并通过record.get(i)访问记录的第 i 项,例如

    Reader in = new StringReader(
            "DAR_123451                  ,"XXXXX Hello World Hello World XXX "n" +
            "DAR_123452                  ,"XXXXX Hello World Hello World XXX "");
    Iterable<CSVRecord> records = CSVFormat.DEFAULT.parse(in);
    for (CSVRecord record : records) {
        for (int i = 0; i < record.size(); i++) {
            System.out.println("At " + i + ": " + record.get(i));
        }
    }

您可以通过执行以下操作来访问 CSVRecord 的列名(键和值(:

private void printRecords(final CSVParser csvRecords) {
    for (CSVRecord csvRecord : csvRecords) {
        for (Entry<String, String> column : csvRecord.toMap().entrySet()) {
            System.out.println(column.getKey() + "=" + column.getValue());
        }
    }
}
或者,您可以像在

java.util.ArrayList上一样迭代CSVRecord。

相关内容

  • 没有找到相关文章

最新更新