我正在解密一个字符串以显示多个逗号分隔的值,并且我想访问各个信息,但加密的字符串不包括标头值。
我知道,在读取特定列的 CSV 文件信息时,可以通过以下方式访问:
CSVRecord.get(ID);
其中 ID 是表中的标题值,但似乎没有办法在不知道标题名称的情况下访问它。
加密的字符串正在另一个应用程序中解密。
有没有办法在不知道标题值的情况下读取逗号分隔值的访问权限,或者是否有任何替代 CSVRecord 的方法?
我正在解密一个字符串以显示多个逗号分隔的值,并且我想访问各个信息,但加密的字符串不包括标头值。
我知道,在读取特定列的 CSV 文件信息时,可以通过以下方式访问:
CSVRecord.get(ID);
其中 ID 是表中的标题值,但似乎没有办法在不知道标题名称的情况下访问它。
加密的字符串正在另一个应用程序中解密。
有没有办法在不知道标题值的情况下读取逗号分隔值的访问权限,或者是否有任何替代 CSVRecord 的方法?
您可以简单地遍历结果记录并通过访问记录的第 i 个项目record.get(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。