【问题标题】:The easiest way to format string like 1 000 000格式化字符串的最简单方法,如 1 000 000
【发布时间】:2014-03-09 06:50:32
【问题描述】:

在我的 android 程序中,我显示大数字。为了使它们易于阅读,我希望将这些数字的格式设置为不像 1000000 而是像 1 000 000

像这样格式化字符串最简单的方法是什么?

【问题讨论】:

    标签: java android string


    【解决方案1】:

    试试这个

    String s = NumberFormat.getNumberInstance(Locale.FRANCE).format(1000000);
    

    【讨论】:

    • 太棒了!我不知道这个Locale :)
    【解决方案2】:

    使用NumberFormatLocale#US,s 添加到号码:

    String myNumber = NumberFormat.getNumberInstance(Locale.US).format(number);
    

    然后用空格替换每个,

    myNumber = myNumber.replace(",", " ");
    

    或者,正如@EvgeniyDorofeev 所建议的那样,使用Locale#FRANCE,您无需替换任何东西:)


    请注意replacereplaceAll 之间的区别。请参阅接受CharSequenceString#replace 并尝试代码。

    它们都替换所有字符replaceAll 接受 regex,在这种情况下我不需要

    【讨论】:

    • 它应该是replaceAll吗?
    • @Zeeshan No. replace 在这里会很好.. 试试看。
    • replacereplaceAll有什么区别?
    • @ylun 后者接受 regex 作为参数。但它们都全部替换
    • 知道了replace(CharSequence target, CharSequence replacement) 也接受String 作为方法参数,因为String 实现了CharSequence
    【解决方案3】:

    你可以像这样使用String.format

    long num = 1000000;
    System.out.println(String.format("%,d", num).replace(",", " "));
    

    输出是

    1 000 000
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-18
      相关资源
      最近更新 更多