0

CSVファイルを読み取ろうとしていますが、戻り値は値の列全体です。各行を個別に使用するにはどうすればよいですか(4日間Javaで作業しているので、私の無能に親切にしてください:D)

package mypackage;

import java.io.FileReader;
import java.io.IOException;
import au.com.bytecode.opencsv.*;


public class CSVData {

    private static final String FILE_PATH="D:\\eclipse\\250.csv";

    public static void main(String[] args) throws IOException {

        CSVReader reader = new CSVReader(new FileReader(FILE_PATH));
        String [] nextLine;
        while ((nextLine = reader.readNext()) != null) {
            String a = nextLine[2];
            System.out.println(a);
        }

    }
}

出力は次のとおりです。

性別
女性
男性
男性
女性
女性
女性
男性

nextLine[2][1] のように、各行を個別の値として使用できるようにしたいのですが、うまくいきません

4

1 に答える 1

0

最初に全体を読んで、それをリストまたは配列に割り当てる必要があります。csvに5つの列があると仮定すると、私からの簡単なことがあります(列の数を動的に取得する方法がわかりません):

public static void main(String[] args) throws IOException {

    CSVReader reader = new CSVReader(new FileReader(FILE_PATH));
    ArrayList<ArrayList<String>> array = new ArrayList<ArrayList<String>>();
    while ((nextLine = reader.readNext()) != null) {
        ArrayList<String> list = new ArrayList<String>();
        for (int i=0;i<5;i++) { //i<5 is hardcoded; get actual function for number of columns
           list.add(nextLine[i]);
        }
        array.add(list);
    }
    // example for nested loop to display results
    for(x=0;x<array.size();x++) {
        for(y=0;y<array.get(x).size();y++) {
            System.out.print(array.get(x).get(y) + " ");
        }
        System.out.println(" ");
    }
    // example to display specific item
    System.out.println(array.get(1).get(1));
}

これを行うためのよりクリーンな方法があると確信しています (テーブル データを保持するオブジェクトを保持し、リストに配置する方が優れています) が、そのアイデアは理解できます。後で list.get(x) または list.get(x).get(y) とループを使用してデータを取得できます。

于 2013-07-09T07:30:19.197 に答える