getConteactNo("A",1);
public static synchronized String getConteactNo(String prefix,int nowNum ) {
StringBuilder builder = new StringBuilder();
StringBuilder num = new StringBuilder();
AtomicInteger count = new AtomicInteger(nowNum);
// 6位数字的采取编号处理。99999的情况下从00001开始采取。
if (count.get() > 99999) {
prefix = "CC";
count = new AtomicInteger(1);
}
// 采用4位数的数字进行序号处理。
if (count.get() < 10) {
num.append("0000").append(count.getAndIncrement());
}else if (count.get() < 100) {
num.append("000").append(count.getAndIncrement());
} else if (count.get() < 1000) {
num.append("00").append(count.getAndIncrement());
} else if (count.get() >= 10000) {
num.append(count.getAndIncrement());
} else {
num.append("0").append(count.getAndIncrement());
}
// 组合。
builder.append(prefix);
builder.append(num);
return builder.toString();
}
测试打印数据
public static void main(String[] args) {
System.out.println(getConteactNo("A",1));
System.out.println(getConteactNo("A",99999));
}
控制台输出结果