如何在int里面添加空格?

时间:2015-04-21 17:05:33

标签: java int format system.out

让我们说我要打印数字100000000.乍一看,很难说这个数字代表了多少百万。是1000万还是1亿?如何让Java中的大数字看起来更具可读性?例如,像这样的东西会很棒:100 000 000。你可以立刻知道这个数字是1亿。

7 个答案:

答案 0 :(得分:10)

您也可以尝试使用DecimalFormat;

DecimalFormat formatter = new DecimalFormat("#,###");
System.out.println(formatter.format(100000));

结果:

1000>>1,000
10000>>10,000
100000>>100,000
1000000>>1,000,000

答案 1 :(得分:3)

您可以尝试这样:

String.format("%.2fM", yourNumber/ 1000000.0);

这将以

格式显示数字
1,000,000 => 1.00M
1,234,567 => 1.23M

修改: -

我知道它是一个迟到的编辑,但是还有一种方法:

private static String[] suff = new String[]{"","k", "m", "b", "t"};
private static int MAX_LENGTH = 4;

private static String numberFormat(double d) {
    String str = new DecimalFormat("##0E0").format(d);
    str = str.replaceAll("E[0-9]", suff[Character.getNumericValue(str.charAt(str.length() - 1)) / 3]);
    while(str.length() > MAX_LENGTH || str.matches("[0-9]+\\.[a-z]")){
        str = str.substring(0, str.length()-2) + str.substring(str.length() - 1);
    }
    return str;
}

调用此函数,您将获得如下输出:

201700 = 202k
3000000 = 3m
8800000 = 8.8m

答案 2 :(得分:2)

您可以使用十进制格式格式化字符串

    DecimalFormat decimalFormat = new DecimalFormat("###,###,###");
    System.out.println(decimalFormat.format(100000000));

这将打印100,000,000

对于其他输入 - 比如1000,它将打印1,000

答案 3 :(得分:2)

使用DecimalFormat课程,请参阅如何使用的链接。

为了节省您的搜索,我已经写了您基本需要的内容

DecimalFormat myFormatter = new DecimalFormat("### ### ###");
String output = myFormatter.format(value);
System.out.println(output);

答案 4 :(得分:1)

使用已经建议的 DecimalFormat 几乎是您所需要的一切。要获得所需的确切结果(例如,以空格分隔的千位等),您需要将其与 DecimalFormatSymbols 组合,例如:

DecimalFormatSymbols customSymbols = DecimalFormatSymbols.getInstance(Locale.US); 
customSymbols.setGroupingSeparator(' '); 
new DecimalFormat("#,###;-#,###", customSymbols).format(value);

; “#,###;-#,###”中的分号将正数与负数分开(必须分别定义,否则最终将所有转换为正数!)

,冒号为单独的数字(在此示例中为3位)指出一个地方。

例如,对于

value=12345678

输出为

12 345 678

答案 5 :(得分:0)

您可能只想为此使用字符串。如果您需要进行一些计算,只需将其保留为int,直到需要打印为止。然后当需要打印时将其转换为字符串,处理字符串以使其可读,并打印出来。

答案 6 :(得分:0)

下面的方法如何,但Java 7及更高版本中的it's supported

  

int twoMillion = 2_000_000;