0

私の問題は非常に単純です。CSV ファイルを 1 行ずつ解析していて、列の値を取得したいのです。使用されるセパレーターは単に " ;" ですが、私のファイルには非常に多くの列が含まれる可能性があり、常に同じ順序になるとは限りません。

私の.CSVファイルの例として:

time;columnA;columnB,ColumnC
27-08-2013 14:43:00; this is a text; this too; same here

そして、時間、列A、列B、および列Cのすべての値を取得できるようにしたいと考えています. 最も簡単な方法は何ですか?

以前StringUtils.countMatches(input, ";");は、持っているセパレータの数を取得していました。私は を作ろうとし始めましたString index[][] = {{"time", "columnA", "columnB", "columnC"}{}}; そして私の計画は、;他の各変数の前にこれを " " の数で埋めることでした。

しかし今、私はかなり立ち往生しています...

私のコードをもっと見せてほしいなら、私はできます。誰かが私を助けてくれることを願っています! :)

(下手な英語でごめんなさい)。

4

1 に答える 1

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(";");
}
于 2013-08-27T12:56:27.327 に答える