Как именно 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 ()?