Jak dokładnie analizuje podwójny skaner Java?

Używam komputera z systemem Windows 7, którego „Panel sterowania Zegar, język i region” to „Dania”

Zgodnie z dokumentacją dlaSkaner:

Początkowe ustawienia skanera to wartość zwracana przez metodę Locale.getDefault ();

Ale kiedy uruchomię kod:

System.out.println(Locale.getDefault());
Scanner sc = new Scanner("1.0");
sc.nextDouble();

Wyprowadza „en_US”, a następnie zgłasza wyjątek java.util.InputMismatchException w sc.nextDouble (). Działa, gdy skaner jest zainicjowany za pomocą „1,0”

Jeśli jednak ustawię jawnie ustawienia regionalne:

Locale.setDefault(Locale.US);
System.out.println(Locale.getDefault());
Scanner sc = new Scanner("1.0");
sc.nextDouble();

Wyprowadza „en_US”, a następnie dobrze analizuje podwójne. Czy czegoś brakuje lub czy dokumentacja skanera jest nieprawidłowa?

Edytować Zgodnie z sugestią @Perception, spojrzałem na sc.locale () w pierwszym przykładzie. Wyświetla „da_DK”. Dlaczego więc nie jest to „en_US”, kiedy to jest zwracane przez metodę Locale.getDefault ()?

questionAnswers(1)

yourAnswerToTheQuestion