2016-07-01 2 views
-2

У меня есть эта проблема при кодировании java и не знаю, как ее решить. Любая помощь будет большой. Вот часть моего кода. И ошибка в последней.Исключение из потока «main» java.util.InputMismatchException в java.util.Scanner.throwFor (Scanner.java:864)

Scanner scan = new Scanner(System.in); 

    String name = null; 

    while (scan.hasNextLine()) { 

     n = scan.nextInt(); //line 37 
     m = scan.nextInt(); 

     if (n == -1 && m == -1) { 
      break; 
     } 
     init(); 

     for (int i = 0; i < n; i++) { 
      name = scan.next(); 
      course.put(name, i); 
     } 
     ... 
    p[1] = 1; 
    for (int i = 2; i <= 12; ++i) 
     p[i] = p[i - 1] << 1; 

    input();//line 117 
    solve(); 


Exception in thread "main" java.util.InputMismatchException 
at java.util.Scanner.throwFor(Scanner.java:864) 
at java.util.Scanner.next(Scanner.java:1485) 
at java.util.Scanner.nextInt(Scanner.java:2117) 
at java.util.Scanner.nextInt(Scanner.java:2076) 
at Graduate.graduateProj.input(graduateProj.java:37) 
at Graduate.graduateProj.main(graduateProj.java:117) 
+0

Вы уверены, что токены ввода, предоставляемые сканеру, имеют ожидаемый тип? Каков тип «n»? –

+0

InputMismatchException означает, что вы не предоставляете необходимый тип: вы разбираете int, но вводите что-то еще. – user8

+0

n - общедоступный статический int –

ответ

1

Вы получите InputMismatchException если вы пытаетесь вызвать Scanner::nextInt на строку, которая не может быть разобрано на междунар.

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