这就是我的 CSV 文件的样子:
X, X2, Symbol, Date, Open, High, Low, Close, Volume
5, 9, AAPL, 01-Jan-2015, 110.38, 110.38, 110.38, 110.38, 0
2710, 289, AAPL, 01-Jan-2015, 110.38, 110.38, 110.38, 110.38, 0
5415, 6500, AAPL, 02-Jan-2015, 111.39, 111.44, 107.35, 109.33, 53204600
如何仅从 X 和 X2 列中选择值?我一直在尝试使用 openCSV 库,但没有得到任何好处。
谢谢
最佳答案
uniVocity-parsers可以非常轻松地完成此操作,并且速度比 OpenCSV 快 2 倍。
以下是如何使用它来选择感兴趣的列:
输入
String input = "X, X2, Symbol, Date, Open, High, Low, Close, Volume\n" +
" 5, 9, AAPL, 01-Jan-2015, 110.38, 110.38, 110.38, 110.38, 0\n" +
" 2710, 289, AAPL, 01-Jan-2015, 110.38, 110.38, 110.38, 110.38, 0\n" +
" 5415, 6500, AAPL, 02-Jan-2015, 111.39, 111.44, 107.35, 109.33, 53204600";
配置
CsvParserSettings settings = new CsvParserSettings(); //many options here, check the tutorial
settings.setHeaderExtractionEnabled(true); //tells the parser to use the first row as the header row
settings.selectFields("X", "X2"); //selects the fields
解析
CsvParser parser = new CsvParser(settings);
List<String[]> allRows = parser.parseAll(new StringReader(input));
打印结果
for(String[] row : allRows){
System.out.println(Arrays.toString(row));
}
}
输出
[5, 9]
[2710, 289]
[5415, 6500]
在字段选择上,您可以使用任何字段序列,并且具有不同列大小的行,解析器将很好地处理这个问题。
披露:我是这个库的作者。它是开源且免费的(Apache V2.0 许可证)
关于java - 在 Java 中通过标题解析特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34890462/