Я пытаюсь вернуть 2D-массив основному методу в java. Предполагается, что метод читает текстовый файл, местоположение которого передается как args [0] в методе main. Однако, когда я пытаюсь напечатать массив, чтобы увидеть, правильно ли я его вернул, я получаю следующую ошибку:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Practice.main(Practice.java:21)
Вот мой код:
public class Practice {
public static void main(String[] args) throws FileNotFoundException {
// Accept all command arguments and stores them in the relative variable
if (args.length == 2) {
// Text mode
} else if (args.length == 1) {
In in = new In(args[0]);
String [][]board = readBoard(in);
System.out.println(board);
}
}
public static String[][] readBoard(In in) throws ArrayIndexOutOfBoundsException {
while(in.hasNextLine()) {
String S = in.readLine();
int R = in.readInt();
int C = in.readInt();
String [][]board = new String [R][C];
for (int r = 0; r < R; r++) {
char dummy = in.readChar();
while(in.hasNextLine()) {
for (int c = 0; c < C; c++) {
char obs = in.readChar();
String o = Character.toString(obs);
// assign each element in the board file to a 2D array
board[r][c] = (o);
}
}
}
return board;
}
return null;
}}
И текстовый файл имеет следующий формат:
Test file
5 5
.....
s....
.x.L.
.xxxx
....t
Я не уверен, что, возможно, я неправильно читаю файл как двумерный массив или нет , Любая помощь будет оценена!