1
私はインターネットからデータベースを取得しようとしていますが、バグは消滅しています。スキャナでエラーが発生しました
package space;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Scanner;
import java.net.URL;
public class ArrayIntro {
public static void main(String[] args) throws Exception {
String urlbase = "https://learnjavathehardway.org/txt/";
double[] temps = arrayFromUrl(urlbase + "avg-daily-temps-atx.txt");
System.out.println(temps.length + " temperatures in database.");
double lowest = 9999.99;
for (int i=0; i<temps.length; i++) {
if (temps[i] < lowest) {
lowest = temps[i];
}
}
System.out.print("The lowest average daily temperature was ");
System.out.println(lowest + "F (" + fToC(lowest) + "C)");
}
public static double[] arrayFromUrl(String url) throws Exception {
Scanner fin = new Scanner((new URL(url)).openStream());
int count = fin.nextInt();
double[] dubs = new double[count];
for (int i=0; i<dubs.length; i++)
dubs[i] = fin.nextDouble();
fin.close();
return dubs;
}
public static double fToC(double f) {
return (f-32)*5/9;
}
}
値カウントは、私がリンクhttps://learnjavathehardway.org/txt/avg-daily-temps-atx.txtで最低温度を見つけようとしている6717.です。
そして、エラーはこれです:Scanner
で
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextDouble(Scanner.java:2413)
at space.ArrayIntro.arrayFromUrl(ArrayIntro.java:43)
at space.ArrayIntro.main(ArrayIntro.java:20)
C:\Users\Administrator\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 3 seconds)
と '.'は、有効な小数点の記号でありますあなたのロケールで? – Tom
どういう意味ですか? – Space
どのようにあなたの国に "半分"を書いていますか? '0.5'か '0,5'? '0,5'ならば、フォーマットが間違っているので、明らかに' 0.5'のような数字を読み取ることはできません。 – Tom