我有一个 while 条件,当文件有下一个 float (scanner.hasNextFloat()) 时从文本文件中读取并将 float 分配给数组。但是,我收到 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
提前致谢
最佳答案
当您遇到“列表”行时。
while (DistanceEventList.endList()){
Float NextScore = scanner.nextFloat();
DistanceEventList.getCurrent().distance[index] = NextScore;
DistanceEventList.nextCurrent();}
我会添加while (DistanceEventList.endList() && Scanner.hasNextFloat())
关于java.util.InputMismatchException 使用scanner.nextFloat JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29533739/