Изменение Языкового стандарта в Java

Я работаю над проектом, в котором вы можете рисовать линии на холсте и сохранять его в текстовом файле с координатами для каждой линии.

Однако, когда я пытаюсь сохранить его с помощью этого метода и записать в текстовый файл, все точки заменяются запятыми.

Я предполагаю, что это связано с тем, что мой язык на ПК является европейским, поэтому я попытался найти обходной путь, установив локаль printstream в Locale.US, но без везения.

Как я могу это исправить, не меняя язык всего моего ПК?

2 ответа

Обновление: я исправил это, изменив Locale в моем методе 'main':

Locale.setDefault(new Locale("en", "US"));

Представление числовых типов данных (int, double и так далее) в строку может быть выполнено в двух "режимах":

  • Для программиста: как и в исходном коде, представление имеет десятичную точку и не имеет разделителей тысяч. Полезно для генерации XML и другого кода, связанного с машинным текстом. String.format, String.valueOf, printf, BigDecimal.toPlainString
  • Для конечного пользователя, который будет прочитан: это Locale конкретный. MessageFormat, DecimalFormat *

В вашем случае вам, вероятно, нужно изменить некоторые NumberFormat к String.format, чтобы заявить, что формат является фиксированным, техническим. Проверьте число выше 1000: 1000,99 в Locale en US?

Другие вопросы по тегам