2015-10-23 3 views
0

Я пишу программу, которая читает спортивные данные из текстового файла. В каждой строке есть строки и 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 
+0

Извините, но какой результат вы пытаетесь создать точно и что не так? – Pshemo

+0

На этом этапе я просто пытаюсь прочитать целые числа из каждой строки, и я пытаюсь вывести их на консоль, чтобы проверить, действительно ли целые числа считываются сканером, однако они не потому, что программа автоматически переходит к инструкции else и останавливается. – Hector

+1

Как вы думаете, 'lineScan.hasNextInt()' должен вернуться и почему вы так думаете? Какая часть документации метода 'hasNextInt' заставляет вас думать, что ваше предположение верно? – Pshemo

ответ

0

Метод hasNextInt() попытаться проверить немедленную строка INT? , Так что условие не работает.

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); 

      while (lineScan.hasNext()) { 
       if(lineScan.hasNextInt()) { 
        System.out.println(lineScan.nextInt()); 
        break; 
       } 
       lineScan.next(); 
      } 
      line = input2.nextLine(); 
     } 
} 

Пожалуйста, попробуйте использовать этот код.

+0

Я получаю ошибку «java.util.NoSuchElementException: null (in java.util.Scanner)» на строкеScan.next(); часть (от второй до последней строки) – Hector

+0

Я пропустил заявление о разрыве. Не могли бы вы попробовать сейчас. –

+0

Он выводит только каждый другой балл на левой стороне. – Hector

Смежные вопросы