-1

次のデータ形式のファイルがあります

userid, friend id, books id, cd id
1, 11 12 14 12, 223 256 333 234 222, 22
2, 78 22, 22 66 11 29, 76 455
3, 123 22 11 234 198 122 881, 34 12 98 64, 22

ここで、ユーザー ID と CD ID のみを使用する必要がありますが、これらのフィールドを分離できません。

以下のような私のJavaコード。

BufferedReader in = new BufferedReader(new FileReader("CSV_test.txt"));

BufferedWriter ou =new BufferedWriter(new FileWriter("users.csv"));
String str;
str = in.readLine();

while ((str = in.readLine()) != null) {

  String[] ar = str.split(",");
  String[] ar1 = ar[1].split("");


  ou.write(ar[0]);
  ou.write(",");
  ou.write(ar1[1]);

  ou.newLine(); }
in.close();
ou.close();
}

これに問題はありますか?

4

2 に答える 2

4

きっと欲しい

 String[] ar = str.split(",");
 String user = ar[0].trim();
 String cd = ar[3].trim();

先頭/末尾のスペースを削除するためにトリミングしていることに注意してください。

", "(末尾のスペースに注意してください)を使用して分割できます。これにより、さらにtrim(). ただし、フィールドがどのように区切られているか (カンマ? カンマとスペース?) についてはいくつかの仮定があり、おそらくCSV ライブラリを調査する価値があります。

于 2013-01-17T12:48:50.757 に答える
3

車輪を再発明する必要はありません。CSV の解析は非常に単純ですが、少し複雑な場合があります (フィールド値の区切り文字のエスケープなど)。OpenCSVCsvJdbcなどの既存のライブラリでこれを行うことができます。

于 2013-01-17T12:51:17.683 に答える