我认为我的算法出错了,我试图分裂我的算法 使用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);
}
}
答案 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
。你还需要检查这是否是字符串的开头,否则它会在开头写一个逗号。