1

CSVReaderライブラリで読んでいるCSVファイルがあります。

ファイルを行ごとに繰り返し、特定の列の値を新しい配列に保存したいと思います。

次のコードは、2番目の列のデータのリストを示しています。

このデータを取得してアレイに保存するにはどうすればよいですか?列区切り文字をコンマとして指定し、ファイルの最初の2行をスキップしています

public class ReadFile {


        // Location of file to read

    private static final String FILE="myfile.csv"; 

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

        CSVReader reader = new CSVReader(new FileReader(FILE), ',','\'', 2);

            String [] nextLine;
        while ((nextLine = reader.readNext()) != null) {

                   System.out.println(nextLine[1]);
        }
           }
    }

nextLine[1]からの現在の出力

1720178147618
1720178147617
1720178147616
1720178147615
1720178147614
1720178147613
1720178147612

必要な出力

String[] ID = 1720178147618, 1720178147617, 1720178147616, 1720178147615, 1720178147614, 1720178147613, 1720178147612

後は、単一のインデックスに格納されているデータを、個別のインデックスの新しい配列に変換する方法について説明していると思います。

4

3 に答える 3

0

Open CSVライブラリCSVReaderのを使用していると仮定すると、ドキュメントには、目的の処理を正確に実行するメソッドがあることが示されています。readAll()

List<String[]> values = reader.readAll();

于 2013-03-24T15:13:51.737 に答える
0

他の答えを考えると、これがあなたがもう探しているものであるかどうかはわかりません。2列目のデータのみを含む単一の配列が必要だったので理解しましたか?

これが私が持っているものです:

    List<String> strings = new ArrayList<>();
    while...{
        strings.add( nextLine[1] );
    }
    String[] ID = strings.toArray(new String[strings.size()]);

ただし、chrisnの回答を使用して、次のことを行うこともできます。

String[] ID = values.get(1);
于 2013-03-24T15:19:07.260 に答える
0

コンテンツをに追加する必要がありますList-これは拡張可能なコレクション構造です、

final List<String> list = new LinkedList<String>();

そしてあなたのコードで

while ((nextLine = reader.readNext()) != null) {
    list.add(nextLine[1]);
}

次に、必要に応じてメソッドString[]を呼び出すことができますtoArray

final String[] array = list.toArray(new String[list.size()]);

ただし、を使用することもできますList

于 2013-03-24T15:21:14.380 に答える