当前位置: 首页 > 知识库问答 >
问题:

使用hasNextLine()但仍然获得java.util.NosuChelementException:未找到行

方博
2023-03-14

我正在做一个编程项目,并不断得到如下所示的错误。

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1585)
    at ArrayPhoneDirectory.loadData(ArrayPhoneDirectory.java:42)
    at ArrayPhoneDirectoryTester.main(ArrayPhoneDirectoryTester.java:18)
 public void loadData (String sourceName){
Scanner read = new Scanner(sourceName);

while (read.hasNextLine()) {
    String name = read.nextLine();
    String telno = read.nextLine(); //ArrayPhoneDirectory Line 42
    add(name, telno);
  }
 }

关联文本文件

John
123
Bill
23
Hello
23455
Frank
12345
Dkddd
31231

共有1个答案

淳于涛
2023-03-14
hasNextLine()

将只检查一个新行。只检查一行就不能读两行。

如果您必须连续读取记录,那么您可以

public void loadData (String sourceName){
    Scanner read = new Scanner(sourceName);
    int i = 1;

    while (read.hasNextLine()) {
        if(i%2 != 0)
            String name = read.nextLine();
        else
            String telno = read.nextLine(); //ArrayPhoneDirectory Line 42
        add(name, telno);
        i++;
    }
}
 类似资料:
  • 问题内容: 我正在做一个编程项目,并不断收到如下所示的错误。 我认为这是因为扫描仪read.nextLine()超出了文本文件的末尾。但是我在hasNextLine中使用了while循环,所以我不确定为什么会这样。有人知道我要去哪里了吗? 关联文本文件 问题答案: 将仅检查一个新行。您只检查了一行就无法阅读两行。 如果您必须不断读取记录,则可以

  • 问题内容: 通过扫描程序读取文件时,程序中出现运行时异常。 我的代码是: 问题答案: 与你需要检查,如果存在与下一行 所以循环变成 是读者返回null 当然在这段代码中,这取决于输入的格式是否正确

  • 我有下面的代码: 联机System.NullReferenceException:DownloadLinkList.Add(Item.SelectSingleNode(“.//a”).Attributes[“href”].Value); 怎样才能妥善处理,让它不再崩溃?我的印象是,它应该只是跳过前面。 使用也不是一个选项,因为我仍然需要没有所需的的某个页面的信息。

  • 我已将laravel应用程序的时区更改为,并在app.php文件中更改了此时区 但是,当我使用签入生产时区时,我得到的时区是UTC 我如何设置碳原子的时区

  • 我读过很多关于在android中解析json的文章,我不知道我错过了什么,因为我认为我做得很对,但它总是显示出错误 下面是我的JSON: 这是我在android中的句柄

  • 下面是我的代码: 和控制台输出以下内容: 我以为使用toString可以去掉[],为什么它还在那里? 编辑:如果toString不是摆脱[]的正确方法,那么正确的方法是什么?