今天,我对逗号有疑问。我想这样在字符串中添加逗号:

String before = "12345678901234";
String after = commaInString(before); //This is the function that I want to make, but with no luck yet.
System.out.println(after); // This should show 12,345,678,901,234


因此,我现在要做的是使commaInString(String string)函数,并且在下面做了一个测试函数:

public static String commaInString(String string) {
        int stringSize = string.length();
        int fsize = stringSize % 3;
        StringBuffer sb = new StringBuffer();
        int j = 0;
        for(int k=0;k<stringSize;k++) {
            if(fsize !=0 && k<fsize) j=0;
            else if(fsize !=0 && k==fsize) sb.append(",");
            j++;
            sb.append(string.substring(k,k+1));
            if(j%3==0 && (j+fsize)!=stringSize) sb.append(",");
        }

        string=sb.toString();
        return string;
    }


但是,它仅适用于某些数字,我不知道为什么。我不能使用DecimalFormmat,因为该数字太大而不能成为Integer。我想将逗号放在“字符串”本身中。我可以对上述功能进行哪些安排以解决此问题?请帮忙。

最佳答案

一种简单的方法是使用BigInteger和任何现有的格式化程序,例如

BigInteger num = new BigInteger("12345678901234567890");
String formatted = String.format("%,d", num);
// 12,345,678,901,234,567,890

10-04 12:31