0

いくつかのアイテムのシソーラスをエンコードした csv がありますが、行ごとのエントリ数が行ごとに異なると予想されます。

最初の行には、25 個のトークン/類義語が含まれています。残りの行は少なくなります。しかし、String[]読み取られるものはすべて長さ 25 です。短い行には空の文字列が埋め込まれます。

これが起こらないようにする方法はありますか?

私のコードは次のようになります。

CSVReader reader = new CSVReader(new FileReader("thesaurus.csv", '\t'));
String [] nextLine;
while ((nextLine = reader.readNext()) != null) {
    System.out.println("length of the row: "+ nextLine.length);
}

csv からのサンプル行:

search  examination  exploration    hunt    inquiry inspection  investigation   pursuit quest   research    chase   frisking    going-over  inquest pursual pursuance   pursuing    rummage scrutiny    shakedown   fishing expedition  legwork perquisition    wild-goose chase    witch hunt
school  schule
saint   st. st

String[] 項目を 1 つずつ出力すると、次のようになります。

'school', 'schule', , , , , , , , , , , , , , , , , , , , , , , , 
'saint', 'st.', 'st', , , , , , , , , , , , , , , , , , , , , , , 
4

1 に答える 1

0

入力csvに末尾のスペースがあると思います。

String[] nextLine;
    while ((nextLine = reader.readNext()) != null) {
        for (String line : nextLine) {
            System.out.println(line.replaceAll(" ", "."));
        }
    }

これは、末尾にスペースがない場合の出力です。

search..examination..exploration....hunt....inquiry.inspection..investigation...pursuit.quest...research....chase...frisking....going-over..inquest.pursual.pursuance...pursuing....rummage.scrutiny....shakedown...fishing.expedition..legwork.perquisition....wild-goose.chase....witch.hunt
school..schule
saint...st..st

これは、末尾にスペースがある場合の出力です。

search..examination..exploration....hunt....inquiry.inspection..investigation...pursuit.quest...research....chase...frisking....going-over..inquest.pursual.pursuance...pursuing....rummage.scrutiny....shakedown...fishing.expedition..legwork.perquisition....wild-goose.chase....witch.hunt
school..schule............................
saint...st..st.............................................
于 2013-08-29T05:00:03.240 に答える