Как именно Java Scanner анализирует в два раза?

Я использую компьютер с Windows 7, для которого "Панель управления \ Часы, Язык и Регион" - "Дания"

Согласно документации длясканер:

Начальная локаль сканера - это значение, возвращаемое методом Locale.getDefault ();

Но когда я запускаю код:

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

Он выводит "en_US" и затем генерирует исключение java.util.InputMismatchException в sc.nextDouble (). Работает, когда сканер инициализируется с «1,0»

Однако, если я явно установлю Locale:

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

Он выводит "en_US", а затем просто анализирует double. Я что-то упустил, или документация для сканера не так?

редактировать Следуя предложению @Perception, я посмотрел на sc.locale () в первом примере. Он печатает "da_DK". Так почему же это не "en_US", когда это то, что возвращается методом Locale.getDefault ()?

Ответы на вопрос(1)

Ваш ответ на вопрос