发布于2026-07-09 阅读(0)
扫一扫,手机访问
用 String.format("%03d", number) 可以轻松把整数变成三位补零的字符串,比如 1 变成 "001",42 变成 "042",123 还是 "123"。关键在于把递增的整数传进去,配合循环就能生成序列号。

%03d 这个格式化占位符,拆开来看:% 是起始符号,0 表示不足位数时用字符 '0' 填充,3 是最小宽度,d 是十进制整数。所以 String.format("%03d", 5) 得到 "005",而 String.format("%03d", 100) 得到 "100"——注意只补零不截断,宽度够了就不动。
定义一个起始整数,每次调用前自增,再格式化,就搞定了:
int seq = 1;
String serial = String.format("%03d", seq++); // 得到 "001",seq 变成 2
String next = String.format("%03d", seq++); // 得到 "002"
更常见的做法是在循环里用,直接利用循环变量递增:
for (int i = 1; i <= 10; i++) {
String serialNo = String.format("%03d", i);
System.out.println(serialNo); // 输出:001, 002, ..., 010
}
纯数字序列号在实际业务中肯定不够用,常常需要加前缀、时间戳或校验位。举例来说:
String.format("ORD-%03d", orderId) → "ORD-042"String.format("PO2024-%03d", counter) → "PO2024-007"AtomicInteger 替代普通 int,避免重复%04d 或动态计算位数最后,几个容易踩的坑提醒一下:
int 或可自动拆箱的 Integer,传入 String 或 null 会抛 IllegalFormatConversionExceptionString.format("%03d", -7) 得到 "-07"(符号占一位,实际只补两位);如果业务上不允许负数,记得提前校验
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8