各位小伙伴们在完成有序编号生成的时候可能会遇到位数不一致的问题,今天小编就使用DecimalFormat来完成编号的格式化。
使用DecimalFormat实现编号的格式化,常用于编号的有序生成,固定长度(不足该长度时前面补充0,如:000035等)。
废话不说,上案例:
/**
* 根据整数生成编号
* @param num 形参整数
* @return
*/
public static String setCode(int num) {
// 设置开口字母P(代表项目)
String code = "P";
// 获取当前时间并格式化为年月日(yyyy-MM-dd)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(new Date());
// 将时间中间的‘-’换成‘’,如2022-03-03 -> 20220303
date = date.replace("-", "");
// 字母+年月日 如:P20220303
code += date;
// 设置数字的位数为6位,若不足6位则补充为0
DecimalFormat df = new DecimalFormat("000000");
// dfCount便是格式化好的格式 如:000023, 000425等
String dfCount = df.format(num);
// 完成编号生成 P20220303000011
code += dfCount;
return code;
}
/**
* 主方法
* @param args
*/
public static void main(String[] args) {
// 数字23
int num1 = 23;
// 数字425
int num2 = 425;
// 调用方法生成编号
String code1 = setCode(num1);
String code2 = setCode(num2);
// 输出
System.out.println("code1 = " + code1); // P20220303000023
System.out.println("code2 = " + code2); // P20220303000425
}
结果
总结
希望能够帮助到各位需要数字格式化的小伙伴们!如有更好的方案可关注并评论讨论呢!