Я пишу программу, которая читает спортивные данные из текстового файла. В каждой строке есть строки и ints, смешанные вместе, и я пытаюсь прочитать только десятки команд. Однако, даже если строки имеют ints, программа немедленно переходит к инструкции else, не распечатывая оценки. У меня есть два оператора input2.nextLine()
, так что он пропускает две строки заголовка, у которых нет баллов. Как я могу это исправить?Ошибка сканера/токена java
Вот код:
public static void numGamesHTWon(String fileName)throws FileNotFoundException{
System.out.print("Number of games the home team won: ");
File statsFile = new File(fileName);
Scanner input2 = new Scanner(statsFile);
input2.nextLine();
input2.nextLine();
while (input2.hasNextLine()) {
String line = input2.nextLine();
Scanner lineScan = new Scanner(line);
if(lineScan.hasNextInt()){
System.out.println(lineScan.nextInt());
line = input2.nextLine();
}else{
line = input2.nextLine();
}
}
}
Вот в верхней части текстового файла:
NCAA Women's Basketball
2011 - 2012
2007-11-11 Rice 63 @Winthrop 54 O1
2007-11-11 @S Dakota St 93 UC Riverside 90 O2
2007-11-11 @Texas 92 Missouri St 55
2007-11-11 Tennessee 76 Chattanooga 56
2007-11-11 Mississippi St 76 Centenary 57
2007-11-11 ETSU 75 Delaware St 72 O1 Preseason NIT
Извините, но какой результат вы пытаетесь создать точно и что не так? – Pshemo
На этом этапе я просто пытаюсь прочитать целые числа из каждой строки, и я пытаюсь вывести их на консоль, чтобы проверить, действительно ли целые числа считываются сканером, однако они не потому, что программа автоматически переходит к инструкции else и останавливается. – Hector
Как вы думаете, 'lineScan.hasNextInt()' должен вернуться и почему вы так думаете? Какая часть документации метода 'hasNextInt' заставляет вас думать, что ваше предположение верно? – Pshemo