【问题标题】:How to display phonenumber using decimal format [duplicate]如何使用十进制格式显示电话号码[重复]
【发布时间】:2013-04-15 12:53:43
【问题描述】:

您好我想用DecimalFormat来显示:

8392472作为

839 24 72

我试过了

DecimalFormat dc = new DecimalFormat("000 00 00");
return dc.format(number);

我也试过"### ## ##"

【问题讨论】:

    标签: java decimalformat


    【解决方案1】:

    我认为你不能用 DecimalFormat 做到这一点,因为你的空格不是组或小数分隔符。

    简单的方法是简单地使用一个字符串:

    int number = 8392472;
    String s = String.valueOf(number);
    String formatted = s.substring(0, 3) + " " 
                     + s.substring(3, 5) + " "
                     + s.substring(5, 7);
    

    【讨论】:

      【解决方案2】:

      我认为最简单的方法如下。

      public static void main(String[] args) {
          int number = 8392472;
          StringBuilder sb = new StringBuilder(String.valueOf(number))
                                      .insert(3," ")
                                      .insert(6," ");
          System.out.println(sb.toString());    
      }
      

      【讨论】:

      • 效率稍低,因为它涉及复制底层数组两次 - 在大多数情况下可能不会产生明显的差异。
      • 任何以 0 开头的电话号码都会乱码。过去,在美国和加拿大,所有区号都以数字 2-9 开头,并以 0 或 1 作为第二位。第二位数字部分不再正确。我不知道现在第一个数字是否可以为0。
      【解决方案3】:

      使用 Google 库!它对我们很有效。

      https://code.google.com/p/libphonenumber/

      【讨论】:

        猜你喜欢
        • 2015-10-02
        • 1970-01-01
        • 2012-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-28
        • 2023-03-21
        相关资源
        最近更新 更多