先把int,double,bigdecimal等类型的数据转成字符串,再作为参数传入方法添加千位分隔符。
public class test {
public static String solve(String num) {
if (num == null) {
return null;
}
// 判断是否有小数
int index = num.indexOf(".");
if (index >= 0) {
String integer = num.substring(0, index);
String decimal = num.substring(index);
// 分隔后的整数+小数拼接起来
return addSeparator(integer) + decimal;
} else {
return addSeparator(num);
}
}
// 添加分隔符
public static String addSeparator(String num) {
int length = num.length();
ArrayList list = new ArrayList();
while (length > 3) {
list.add(num.substring(length - 3, length));
length = length - 3;
}
// 将前面小于三位的数字添加到ArrayList中
list.add(num.substring(0, length));
StringBuffer buffer = new StringBuffer();
// 倒序拼接
for (int i = list.size() - 1; i > 0; i--) {
buffer.append(list.get(i) + ",");
}
buffer.append(list.get(0));
return buffer.toString();
}
public static void main(String[] args) {
System.out.println(solve("123"));
System.out.println(solve("123456789"));
System.out.println(solve("987654321.123456789"));
System.out.println(solve(".12345678"));
System.out.println(solve("0.12345678"));
System.out.println(solve(null));
}
}