尝试运行我的代码时出现NoSuchElementException错误

时间:2014-04-02 14:06:19

标签: java io java.util.scanner

尝试运行我的代码时,我收到以下错误输出。

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:907)
    at java.util.Scanner.next(Scanner.java:1416)
    at Olympics.main(Olympics.java:61)
Java Result: 1

该项目包含一个名为olympics.txt的文本文件,是一个奥运会运动员与国家等统计数据的文件。我有文件中的行数,lineNum,并且我使用这个for循环添加每一个信息到相应的数组中。

for(int j = 0; j <= lineNum-1; j++)
{
    String line = fileScan.nextLine();
    Scanner lineScan = new Scanner(line);

    lineScan.useDelimiter("\t");
    name[j] = lineScan.next();
    age[j] = lineScan.nextInt();
    country[j] = lineScan.next();
    year[j] = lineScan.next();

    String ceremony = lineScan.next();
    sport[j] = lineScan.next();

    int gold = lineScan.nextInt();
    int silver = lineScan.nextInt();
    int bronze = lineScan.nextInt();

    total[j] = lineScan.nextInt();
}    

第61行是age[j] = lineScan.nextInt(); 我评论了年龄线,看看它是否有效,但它仍然没有用。任何帮助表示赞赏,如果您需要更多代码,请告诉我们。

1 个答案:

答案 0 :(得分:1)

doc开始,useDelimiter(String)采用正则表达式,而不是您想要剪切的示例。
要在标签处拆分,您需要使用useDelimiter("\\t") 这就是next()引发异常的原因,它只是无法使用您设置的分隔符拆分该行。

Similar question