Как отформатировать число в зависимости от локали - PullRequest
1 голос
/ 10 августа 2011

У меня есть поле ввода, и моя веб-страница поддерживает английский и немецкий языки.

В текстовое поле пользователь должен вводить только целое число.

Так как мне отформатировать число, скажем,пользовательский ввод 1,2 (на немецком языке), а затем я хочу проверить, является ли оно действительным целым числом, но перед этим мне нужно преобразовать его обратно в 1,2.Как я могу это сделать ..?

Ответы [ 2 ]

5 голосов
/ 10 августа 2011

Используйте поддержку JDK для локалей:

public static void main(String[] args) throws Exception {
    String str = "1,2";
    Number number = DecimalFormat.getInstance(Locale.GERMAN).parse(str);
    System.out.println(number);
}

Печать:

1.2
0 голосов
/ 10 августа 2011

Ответ находится в вопросе (или, по крайней мере, в его тегах). Используйте NumberFormat для анализа введенной строки, а если ParseException нет, строка является допустимым целым числом.

Чтобы быть полностью правдой, NumberFormat с радостью проанализирует 1,2ABC до 1.2. Чтобы избежать этого, вы можете использовать метод parse, принимающий ParsePosition в качестве аргумента, и проверить, что позиция после анализа находится в конце строки.

...