java.util.InputMismatchException 使用 scanner.nextFloat JAVA

java.util.InputMismatchException using scanner.nextFloat JAVA

我有一个 while 条件,当文件有下一个浮点数 (scanner.hasNextFloat()) 时从文本文件读取并将浮点数分配给数组。但是,我收到 java.util.InputMismatchException 错误。

这是我的代码:

    int index = 0;
    DistanceEventList.resetCurrent();
    String a = "list";
    while (scanner.hasNextLine()) {
        if (scanner.hasNextFloat()){
            DistanceEventList.nextCurrent();

            while (DistanceEventList.endList()){
                Float NextScore = scanner.nextFloat();
                DistanceEventList.getCurrent().distance[index] = NextScore;
                DistanceEventList.nextCurrent();}




            DistanceEventList.resetCurrent();

            index ++;}

        else if (scanner.nextLine().equals("list")){


            continue;
    }}

上面出现了错误,我修改了一些东西来检查错误在哪里 运行 这段代码:

    int index = 0;
    DistanceEventList.resetCurrent();
    String a = "list";
    while (scanner.hasNextLine()) {
        if (scanner.hasNextFloat()){
            System.out.println(scanner.nextFloat());}

        else if (scanner.nextLine().equals("list")){


            continue;}
}

我在这里遗漏了什么吗?我无法弄清楚为什么一个人在 scanner.nextFloat() 上得到输入 InputMismatchException 而另一个人没有。

从文本文件中提取:

65.88782541429404
53.37054214310881
61.51132170748031
60.83640164272022
67.7342725889695
list
65.82330621202783
53.57119546501669

提前致谢

在你遇到 "list" 行的时候。

while (DistanceEventList.endList()){
            Float NextScore = scanner.nextFloat();
            DistanceEventList.getCurrent().distance[index] = NextScore;
            DistanceEventList.nextCurrent();}

我会加while (DistanceEventList.endList() && scanner.hasNextFloat())