Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

csv読み込み→カンマ区切りで格納

お世話になっております。
初の投稿になります。
質問させていただきたいのですか。
CSVファイルから読み込んできたデータをいったんリストに入れて、
二次元配列に変換し、読み込んできたデータに対してエラーチェックをかける、ロジックを作っています。エラーチェックというのは読み込んできたデータがカンマ区切りの二項目で構成されたいるかのチェックです。   例(1,2222)
splitメソッドではカンマを数えるメソッドがなく、どうすればよいか悩んでいます。

かといって下記のようにStringTokenizerを使いカンマ区切りで読み込むと二次元に変換できません。
while ((strtoken = fr.readLine()) != null) {
StringTokenizer st = new StringTokenizer(strtoken, ",");
while (st.hasMoreTokens()) {
if(st.countTokens() !=2){
System.out.println("error");
}
String str1 = st.nextToken();
String str2 = st.nextToken();

list1.add(str1 + ","+str2);
list2.add(str1);
count++;
}
count = 0;
}

で、今のところはこのような感じで読込んでおります。

InputStreamReader isr = new InputStreamReader(new FileInputStream(Fname));
BufferedReader fr = new BufferedReader(isr);

String spl = "";
int count = 0;
while ((spl = fr.readLine()) != null) {
String[] array = spl.split(",");
list1.add(array);
for(int i=0; i<array.length; i++){
    //System.out.println(array[i]);
}
}
String[][] array = (String[][]) list1.toArray(new String[list1.size()][]);

わかりにくいと思うのですが、かなり苦戦しています。
どなたかご教授ください。
よろしくお願いいたします。

2

回答

9110

閲覧

2件の回答

評価

0

>splitメソッドではカンマを数えるメソッドがなく、どうすればよいか悩んでいます。

splitメソッド実行後の戻り値であるString配列の数を数えればいいのでは?
String value = "あ,い,う";
String values[] = value.split(",");
System.out.println(values.length);

評価

0

とおりすがりさん、返信ありがとうございます。
おかげさまで解決することができました。
とてもたすかりました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。