我嘗試從文件double值中讀取數據,並使用Scanner
來達到此目的。使用Scanner從文件double值讀取 - InputMismatchException?
"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);
}
}
UPDATE:
我試圖改變double largest = in.nextDouble();
到double largest = 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
如何解決這個問題?
雙最大= in.nextDouble();線路導致問題。你在這條線上得到的輸入似乎不是雙重值。 – kosa
@Nambari如何繞過這個問題?嘗試使'雙最大= 0'。是不是例外,但輸入是錯誤的 - 最大= 0.0 –
做同樣的檢查,hasNextDouble(),然後只得到兩倍。 – kosa