Следующий код должен считывать 5 строк из файла .dat, а затем печатать каждый отдельный символ из каждой строки.
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
, которую я не улавливаю.
System.out.println(str)
и избегайте разборки строки и ее повторного соединения. 26.09.2012println
вместоprint
. Я сказал: «Если вы печатаете каждый символ в отдельной строке... Но да, конечно, если вы просто печатаете все символы в одной строке, тогдаprintln(str)
лучше. 26.09.2012