Изменение Языкового стандарта в 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?