テキストファイルからスキャンインする単語検索プログラムを書いています。テキストファイルには、2つの整数(パズルの寸法、この場合は10x10)、パズル、別の整数(検索する単語の量)、最後に検索する単語が含まれています。プログラムが次の行をスキャンするforループを実行し、文字列内の各文字を2D配列に追加するように、コードを記述しようとしています。ただし、forループによると、スキャナーは10回以下で実行する必要がありますが、スキャナーはファイルを継続し、最終的にはファイルの「範囲外」になります(パズルのサイズは10x10です)。
問題のあるコードは次のとおりです。
Scanner scan = new Scanner(new File("puzzle.txt"));
int rows = scan.nextInt();
int columns = scan.nextInt();
int [][] wordSearch = new int[rows][columns];
for (int i = 0; i < rows; i++){
for (int j = 0; j < columns; j++){
String temp = scan.nextLine();
for (int k = 0; k < temp.length(); k++){
wordSearch[i][j] = temp.charAt(k);
}
}
}
これがpuzzle.txtです:
- 10 10
- WVERTICALL
- ROOAFFLSAB
- ACRILIATOA
- NDODKONWDC
- DRKESOODDK
- OEEPZEGLIW
- MSIIHOAERA
- ALRKRRIRER
- KODIDEDRCD
- HELWSLEUTH
- 10
- 週
- 探す
- ランダム
- SLEUTH
- 後退
- 垂直
- 対角線
- ウィキペディア
- 水平
- WORDSEARCH