我尝试从文件双值中读取并使用 Scanner
来实现此目的。
"input.txt" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextDouble(Scanner.java:2456)
我不明白为什么会发生这种情况?
代码:
public class Largest
{
public static void main(String[] args)
throws FileNotFoundException
{
String filename = "input.txt";
Scanner in = new Scanner(filename);
double largest = in.nextDouble();
while (in.hasNextDouble())
{
double input = in.nextDouble();
if (input > largest)
{
largest = input;
}
}
in.close();
System.out.println("Largest value: " + largest);
}
}
更新:
我尝试将 doublelargest = in.nextDouble();
更改为 doublelargest = 0;
但它输入错误:
filename Actual Expected
-------------------------------------------------------------
"input.txt" Largest value: 0.0 Largest value: 1.343239923E9
"input2.txt" Largest value: 0.0 Largest value: 40.1
文件内容是这样的:
89343455
46746846
56.78
55486411
如何解决这个问题?
最佳答案
我找到了解决方案 - 需要创建 File 对象,然后将其提供给扫描仪类:
String filename = "input.txt";
File newFile = new File(filename);
Scanner in = new Scanner(newFile);
关于java - 使用扫描仪读取文件 double 值 - InputMismatchException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17407370/