CSVファイルの行列の入れ替えをする方法を教えてください。
Javaでファイルの二次元配列を入れ替えるシステムを作成しているのですが、その際にjava.lang.ArrayIndexOutOfBoundsExceptionというエラーメッセージが出てしまいます。
該当のソースコード
java
ソースコード import java.io.*; public class ReadCSV02 { // CSVファイルを2次元配列に読み込み public static void main(String[] args) { BufferedReader br = null; String file_name = "csvdata.txt"; // 入力ファイル // データの最大個数 final int MAX_DATA_NUMS = 100; // データを格納する2次元配列 String[][] data = new String[MAX_DATA_NUMS][MAX_DATA_NUMS]; try { File file = new File(file_name); br = new BufferedReader(new FileReader(file)); // readLineで一行ずつ読み込む int index = 0; String line; while ((line = br.readLine()) != null) { // lineをカンマで分割し、配列dataに保持 data[index] = line.split(","); index++; } // catch-finally部分は同様なので省略 } catch (Exception e) { System.out.println(e.getMessage()); } finally { try { br.close(); } catch (Exception e) { System.out.println(e.getMessage()); } } // 配列に格納したデータを表示(データ間にスペース) for (int i = 0; i < MAX_DATA_NUMS; i++) { // データがなくなったら終了 if (data[i] == null) break; for (int j = 0; j < data[j].length; j++) { System.out.print(data[j][i] + " "); } System.out.println(); } } }
試したこと
読み込みたいデータは
https://www.fenet.jp/java/column/java_tips/3760/#:~:text=CSVデータは1行,メソッドを利用します%E3%80%82
こちらのウェブサイトに掲載されている
番号,名前,国語,数学,英語
1,田中,100,70,60
2,鈴木,90,80,60
3,佐藤,75,85,70
4,竹内,80,75,80
5,村田,90,90,70
こちらのデータです。
行列の入れ替えはできているようなのですが、
実行した際に
「5,村田,90,90,70」
のデータが実行した際に出現しません。
補足情報(FW/ツールのバージョンなど)
MacのPCで
Visual Studio Code
を使用しています。解決法を教えていただけたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/08 01:51
2021/06/08 08:51
2021/06/08 14:30