如何在数字中插入逗号?

How to insert commas into a number?

我在一本书中找到了这样一个使用String.format()的例子:

package stringFormat;

public class Main {
    public static void main(String[] args) {
        String test = String.format("%, d", 1000000000);
        System.out.println(test);
    } 
}

根据本书的输出应该是:1,000,000,000。但是当我 运行 代码时,我只得到 1 000 000 000 没有逗号。为什么?我怎样才能用逗号得到它?

重现 Locale.FRANCE 的问题:

Locale.setDefault(Locale.FRANCE);

String test = String.format("%, d", 1000000000);
System.out.println(test); //  1 000 000 000

您可以通过 Locale.US:

避免这种情况
String test = String.format(Locale.US, "%, d", 1000000000);

or

Locale.setDefault(Locale.US);
String test = String.format("%, d", 1000000000);

您可以在 link 中阅读 Java 中的格式: https://docs.oracle.com/javase/tutorial/java/data/numberformat.html

对于你的问题,你可以修复:

public static void main(String[] args) {

   String s = "1000000000";

   System.out.format("%,"+s.length()+"d%n", Long.parseLong(s));

}

希望对您有所帮助!