Java で CSV ファイルを 2D 配列に変換する際に問題が発生しています。私はこれを回避するのに最も長い道のりを歩んでいるかもしれませんが、エラーが発生する理由を理解できないようです. 各行と列には、それぞれ 25 個の要素があると想定されています。これが私のコードです:
BufferedReader CSVFile = new BufferedReader(new FileReader(fileName));
String dataRow = CSVFile.readLine();
// Read first line.
// The while checks to see if the data is null. If
// it is, we've hit the end of the file. If not,
// process the data.
while (dataRow != null) {
dataRow.split(",");
list.add(dataRow);
dataRow = CSVFile.readLine();
// Read next line of data.
}
// Close the file once all data has been read.
CSVFile.close();
String[] tokens = null;
Object[] test = list.toArray();
String[] stringArray = Arrays.copyOf(test, test.length, String[].class); //copies the object array into a String array
//splits the elements of the array up and stores them into token array
for (int a = 0; a < test.length; a++) {
String temp = stringArray[a];
tokens = temp.split(",");
}
//converts these String tokens into ints
int intarray[] = new int[tokens.length];
for (int i = 0; i < tokens.length; i++) {
intarray[i] = Integer.parseInt(tokens[i]);
}
//attempts to create a 2d array out of a single dimension array
int array2d[][] = new int[10][3];
for (int i = 0; i < 25; i++) {
for (int j = 0; j < 25; j++) {
array2d[i][j] = intarray[(j * 25) + i];
}
}
ArrayList が最初の String 配列にコピーされたときにエラーが発生したと思いますが、確信が持てません。ファイルには 25 列と 25 行があります。私が取得し続けるエラーは、配列がインデックス 25 で範囲外であるということです。どんな入力でも大歓迎です。ありがとう!