关于将数字分成数千

时间:2015-04-12 17:35:07

标签: java

我认为我的算法出错了,我试图分裂我的算法 使用for循环将数字150000变为数千。我希望输出像150,000。 我只是遇到了一个很好的方式来做这件事。

以下是我的代码:

public class testing {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String l= "150000";
        for(int i=l.length();i<0;i--){
            if ((i/4)==0){
                l=","+l.substring(i, l.length()-1);
            }
        }
        System.out.println(l);
    }

}

1 个答案:

答案 0 :(得分:2)

  

我希望输出像150,000。我只是遇到了麻烦   一个很好的方式

使用DecimalFormat并设置DecimalFormatSymbols的分组分隔符:

DecimalFormatSymbols symbol = new DecimalFormatSymbols();
symbol.setGroupingSeparator(',');
DecimalFormat format = new DecimalFormat();
format.setDecimalFormatSymbols(symbol);
System.out.println(format.format(150000));//print 150,000

修改

根据你的评论,如果你真的想要使用一个循环,那么这个可以工作:

String l = "150000";
String result = "";
for (int i = 0; i < l.length(); i++) {
    if (i != 0 && i % 3 == 0)
        result = result + "," + l.charAt(i);
    else
        result = result + l.charAt(i);
}
System.out.println(result);

哪个会打印150,000

您的实际循环从未到达,条件为i < 0但是我从l.length()开始,它永远不会小于0. i/4也是错误的,您想要使用模数而不是。我还认为它应该是i % 3而不是i % 4。你还需要检查这是否是字符串的开头,否则它会在开头写一个逗号。