如何根据区域设置格式化数字

时间:2011-08-10 11:15:58

标签: java locale number-formatting

我有一个输入框,我的网页支持英语和德语。

在文本框中,用户只应输入整数。

那么如何格式化数字,让我们说用户输入1,2(德语),然后我想检查它是否是一个有效的整数,但在此之前我需要将其转换回1.2。我怎么能这样做..?

2 个答案:

答案 0 :(得分:5)

使用JDK对Locales的支持:

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

答案 1 :(得分:0)

答案在于问题(或至少在其标签中)。使用NumberFormat解析输入的字符串,如果没有ParseException,则字符串是有效的整数。

完全正确,NumberFormat会愉快地将1,2ABC解析为1.2。为避免这种情况,您可以使用以ParsePosition为参数的parse方法,并检查解析后的位置是否在字符串的末尾。