Java: StringBuffer实现数字每三位用逗号隔开
package io;
public class T {
public static void main(String[] args) {
String b = "124356789123456";
String bb = "124356789123456.124356789123456";
System.out.println(split(b));
System.out.println(split(bb));
}
private static String split(String s) {
// StringBuilder stringBuilder = new StringBuilder(s);
StringBuffer stringBuffer = new StringBuffer().append(s);
// 对"."前分隔
int index = stringBuffer.lastIndexOf(".");
if (index == -1) {
index = stringBuffer.length() - 1 - 2; // 没有"."时, 要从最后一个数字索引位置往前移两位插入
} else {
index -= 3; // 有"."时, 因为"."非数字, 从index往前移三位插入
}
for (; index > 0; index -= 3)
stringBuffer.insert(index, ',');
// 对"."后分隔
index = stringBuffer.indexOf("."); // 必须重新计算
// System.out.println("index = " + index);
// System.out.println("stringBuffer = " + stringBuffer);
if (index != -1) {
for (index += 4; index < stringBuffer.length(); index += 4)
stringBuffer.insert(index, ',');
}
return new String(stringBuffer);
}
}