Java 如何在int中添加空格?

Java 如何在int中添加空格?,java,int,format,system.out,Java,Int,Format,System.out,假设我想打印100000000这个数字。乍一看,很难说这个数字代表了多少百万。是1000万还是1亿?如何使Java中的大数字看起来更具可读性?例如,像这样的东西会很棒:100000。你可以马上知道这个数字是1亿。你可能只想使用一个字符串。如果需要进行一些计算,只需将其保持为int,直到需要打印为止。然后,当需要打印时,将其转换为字符串,对字符串进行处理,使其尽可能可读,然后进行打印。您可以这样尝试: String.format("%.2fM", yourNumber/ 1000000.0);

假设我想打印100000000这个数字。乍一看,很难说这个数字代表了多少百万。是1000万还是1亿?如何使Java中的大数字看起来更具可读性?例如,像这样的东西会很棒:
100000
。你可以马上知道这个数字是1亿。

你可能只想使用一个字符串。如果需要进行一些计算,只需将其保持为int,直到需要打印为止。然后,当需要打印时,将其转换为字符串,对字符串进行处理,使其尽可能可读,然后进行打印。

您可以这样尝试:

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

您也可以尝试DecimalFormat

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

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

可以使用十进制格式设置字符串的格式

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

对于其他输入-例如1000,它将打印1000使用该类,请参阅链接了解如何使用

为了省去你的搜索,我写了你基本需要的东西

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

以下方法如何,但在Java 7及更高版本中:

int twoMillion=2_000_000


如前所述,使用十进制格式几乎是您所需要的一切。要获得您要求的确切结果,例如空格分隔千等,您需要将其与十进制符号相结合,如:

DecimalFormatSymbols customSymbols = DecimalFormatSymbols.getInstance(Locale.US); 
customSymbols.setGroupingSeparator(' '); 
new DecimalFormat("#,###;-#,###", customSymbols).format(value);
);“#,######-#,###”中的分号用于分隔正数和负数(必须单独定义,否则最终将全部转换为正数!)

,冒号指向一个分隔数字的位置(本例中每3位数字)

比如说,

value=12345678
输出将是

12 345 678

您可以对大数字使用下划线。@Masud OP希望在打印数字时添加空格,而不是在源代码中code@Turing85,他问了一个问题,比如
如何让Java中的大数字看起来更可读?
我帖子的第一行:
假设我想打印100000000这个数字