【问题标题】:How to format a number depending upon locale如何根据区域设置格式化数字
【发布时间】:2011-10-24 00:07:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: java locale number-formatting


    【解决方案1】:

    使用 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
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-27
        • 1970-01-01
        • 1970-01-01
        • 2019-09-30
        • 2015-09-16
        • 1970-01-01
        • 2016-03-12
        • 1970-01-01
        相关资源
        最近更新 更多