次のコードは、.datファイルから5つの文字列を読み取り、各文字列から個々の文字を出力する必要があります。
File file = new File("tictactoe.dat");
Scanner scan = new Scanner(file);
String str = "";
int x;
for ( x = 0; x < numGames; x++) {
str = scan.nextLine();
for (int i = 0; i < str.length(); i++) {
out.println(str.charAt(i));
}
}
しかし、プログラムはをスローしStringIndexOutOfBoundsException
ます。Scanner
テストでは、ファイルの各行が正常に検出されることが示されているため、に問題はありません。しかし、各文字列の特定の文字を取得して印刷しようとすると、プログラムがクラッシュします。
不思議なことに、ループの外側はcharAt()
エラーなしで機能します。
ループ内でメソッドを呼び出すと、プログラムがクラッシュするのはなぜですか?
更新:使用していたコードをコピーするというばかげた間違いをしました。上記の更新されたコードを参照してください。StringIndexOutOfBoundsException
また、私がキャッチしていないが原因でプログラムが「クラッシュ」します。