我的问题非常简单, 我正在逐行解析CSV文件 ,我想获取列的值。
使用的分隔符只是“;
”,但我的文件可以有很多列,并且它们不会总是以相同的顺序。
以我的.CSV文件为例:
time;columnA;columnB,ColumnC
27-08-2013 14:43:00; this is a text; this too; same here
并且我希望能够获得所有时间值,columnA,columnB和columnC。 什么是最简单的方法?
我使用StringUtils.countMatches(input, ";");
来获取我拥有的分隔符数量。
我开始尝试制作String index[][] = {{"time", "columnA", "columnB", "columnC"}{}};
我的计划是在每个变量之前填充“;
”的数字,这样我现在可以轻松地找出哪个变量代表哪个变量。
但现在我很困难......
如果您希望我显示更多代码,我可以。 希望有人能帮助我! :)
(对不起英语不好)。
答案 0 :(得分:3)
您只需使用split()
方法
例如:
Scanner aScanner = ...
ArrayList<String> L = new ArrayList<String>();
while(aScanner.hasNextLine()){
L.add(aScanner.nextLine());
}
int rows = L.size();
String[][] S = new String[rows][];
for (int i = 0; i < rows; i++) {
S[i] = L.get(i).split(";");
}