解析Java中的文件和模式检测

时间:2013-08-27 12:53:04

标签: java csv pattern-matching string-parsing

我的问题非常简单, 我正在逐行解析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"}{}}; 我的计划是在每个变量之前填充“;”的数字,这样我现在可以轻松地找出哪个变量代表哪个变量。

但现在我很困难......

如果您希望我显示更多代码,我可以。 希望有人能帮助我! :)

(对不起英语不好)。

1 个答案:

答案 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(";");
}