dポイントプレゼントキャンペーン実施中!

FileReader filereader = new FileReader(FileName);
BufferedReader bufferedreader = new BufferedReader(filereader);
String line;
int i = 0;
while((line = bufferedreader.readLine()) != null) {
int j = 0;
StringTokenizer stringTokenizerTest = new StringTokenizer(line, ",");
while(stringTokenizerTest.hasMoreTokens()) {
item[j][i]=stringTokenizerTest.nextToken().toString();
j++;
}
i++;
}
filereader.close();

このような記述で、CSVの中身を全て取得することは出来るのですが、
ある一列だけ取得する方法がわかりません。
具体的には、コンボボックスにCSVのある一列だけ表示させたいです。
(その後、重複なしの値のみにフィルタリングしたい)
現在は苦し紛れに、
combo1.setModel(new DefaultComboBoxModel(new String[] { item[1][3], item[1][4], item[1][5], item[1][6], item[1][7], item[1][8], item[1][9], }));
などと、配列を使ってピンポイントで値を取得していますが
これでは使えないので・・
アドバイスよろしくお願いいたします。

A 回答 (2件)

とりあえず


CSVを配列itemに格納するのは避けられないわ。

格納さえしてしまえば列だけ引っこ抜くのは簡単よね。
for文で
item[1][y]
をStringの配列に格納してあげるだけなんだから。

私ならString[] getRowData(int y)とか
そんなメソッド作って処理させるわ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
なるほど配列の片方を固定、片方を変数にするのですね。

お礼日時:2009/12/20 09:56

どうしても1レコードのなかの一部分を取得


という流れになってしまうわ。
固定長ならRandomAccessFileを利用する手もあるけど
普通に読み込んだほうが早いわね。

ちなみにStringTokenizerじゃなくて
String#splitを使うと
コードがシンプルになって良いわよ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
やはりCSVの中身全体か、出来ても一行分、一セル分の表示ということに
なってしまうのでしょうか。列の抜き出しはどうしても出来ないんです
かね。全く違う記述でも良いのですが・・

お礼日時:2009/12/18 16:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!