输入不匹配异常:扫描文件

时间:2017-03-21 23:21:43

标签: java java.util.scanner

我正在编写一个从文件中获取一行的方法,然后应该打印该文件中的数字

public static void getScore(String line){
    Scanner lineScanner=new Scanner(line);
    lineScanner.next();
    int score=0;
    score= lineScanner.nextInt();
    System.out.println(score);
}

在main方法中我只是用字符串作为参数调用它,但无论我改变什么,我都会得到错误java.util.InputMismatchException。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您正在调用字符串并尝试读取导致输入不匹配的int。例如,应用程序希望从输入文件中读取整数,而是读取实数。在这种情况下,我们输入不匹配,因此将抛出inputwillmismatch

答案 1 :(得分:0)

如果这是您的输入:

Memorial Northwest 70593 San Marino 77043

您的代码不正确。

来自Scanner的{​​{3}}:

  

扫描程序使用分隔符模式将其输入分解为标记,分隔符模式默认匹配空格。

您创建了一个扫描程序,然后调用next,它返回当前令牌Memorial并前进到下一个令牌。

您调用nextInt尝试将当前令牌Northwest解析为整数,但不是,因此它会抛出InputMismatchException

您必须再次调用next以前进到实际上是整数的令牌。