【发布时间】:2011-09-15 07:35:11
【问题描述】:
我有一个包含 7 列(见第一行)的 CSV 文件的以下部分,我想将日期(第一列)作为 TreeMap 中的键,并将 Adj Close 值(第 7 列)作为映射值在 TreeMap 中:
日期、开盘价、最高价、最低价、收盘价、成交量、调整收盘价
7/1/2011,132.09,134.1,131.78,133.92,202370700,133.92 2011 年 6 月 30 日,131.14,132.18,130.71,131.97,223496600,131.97 2011 年 6 月 29 日,130.2,130.93,129.63,130.72,244295500,130.72 2011 年 6 月 28 日,128.45,129.63,128.27,129.61,165556300,129.61
在作业的早期部分,我只需将 Open 值(第二列)作为映射值(日期是键)放入 TreeMap 中。我为此使用了 Scanner,我的代码如下:
TreeMap<String, String> loadPriceData(String fileName) throws Exception
{
TreeMap<String, String> prices = new TreeMap<String, String>();//create prices map
Scanner fileScanner = new Scanner(new File(fileName));
fileScanner.useDelimiter("[,\n]+");// use comma as delimiter
while(fileScanner.hasNext()) //condition detects comma
{
prices.put(fileScanner.nextLine(),fileScanner.nextLine());
}
return prices;
}
但这似乎只适用于 2 列 CSV 数据。如果我需要第 7 列中的映射值,那么有效的方法是什么?提前致谢。
【问题讨论】:
-
为什么不使用开源库进行解析?
标签: csv