Java i18n: где взять десятичный символ группировки для локали - PullRequest
4 голосов
/ 19 января 2010

Вопрос: Где мне искать, когда я хочу знать, какой символ будет использоваться для десятичной группировки при использовании данной локали?

Я попробовал следующий код:

Locale locale = new Locale("Finnish", "fi");
DecimalFormat format = (DecimalFormat) DecimalFormat.getInstance(locale);
System.out.println(format.format(12345678.123));

Проблема здесь в том, что параметры для локали, похоже, не верны, но я все равно думаю, что должно быть место, где можно найти эту информацию без написания программ для нее.

Кажется, что материал не взят из региональных настроек на моем компьютере, так как я изменил символы для немецкого языка в панели управления Windows, но в java-программе не было никаких изменений.

Ответы [ 2 ]

11 голосов
/ 19 января 2010

РЕДАКТИРОВАТЬ: проблема в том, как вы строите свой Locale. Попробуйте просто:

Locale locale = new Locale("fi");

Чтобы ответить на вопрос о том, как получить разделитель программно, вы должны использовать:

Locale locale = new Locale("fi");
DecimalFormat format = (DecimalFormat) NumberFormat.getInstance(locale);
DecimalFormatSymbols symbols = format.getDecimalFormatSymbols();
char groupingChar = symbols.getGroupingSeparator();
1 голос
/ 19 января 2010

Комментарий для поиска в источнике был слишком сложным ...

Вот где можно найти материал:

В файле rt.jar jdk, в пакете sun.text.resources есть файлы «FormatData_ [ISO-Code] .class», в которых содержатся символ для десятичной группировки и другие связанные значения, и они могут быть просмотрено путем декомпиляции их. Декомпилятор Java (http://java.decompiler.free.fr) очень помог в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...