【问题标题】:NoSuchElementException error when trying to run my code尝试运行我的代码时出现 NoSuchElementException 错误
【发布时间】:2014-05-13 21:21:28
【问题描述】:

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

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(); 我评论了年龄线,看看它是否有效,但它仍然无效。感谢您提供任何帮助,如果您需要更多代码,请告诉我。

【问题讨论】:

  • 您能告诉我们在导致异常的循环迭代期间line 的值吗?
  • 我相信你的问题与next()方法的使用有关。

标签: java io java.util.scanner


【解决方案1】:

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

Similar question

【讨论】:

    猜你喜欢
    • 2019-01-26
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 2022-11-07
    • 2023-02-09
    • 2021-12-30
    相关资源
    最近更新 更多