方法 1:使用String.format()
推荐方式,简单高效:
String str = "123";
String paddedStr = String.format("%06d", Integer.parseInt(str));
System.out.println(paddedStr); // 输出:000123
- 说明:
%06d
表示将整数格式化为 6 位字符串,不足部分用 0 填充。- 适用场景:输入确定为纯数字字符串。
方法 2:使用DecimalFormat
适用于数字格式化需求:
import java.text.DecimalFormat;
String str = "123";
int num = Integer.parseInt(str);
DecimalFormat df = new DecimalFormat("000000");
String paddedStr = df.format(num);
System.out.println(paddedStr); // 输出:000123
- 说明:
000000
表示固定 6 位,不足补 0。- 优点:适用于需要频繁格式化数字的场景。
方法 3:手动补 0(字符串拼接)
灵活处理非数字字符串:
String str = "123";
while (str.length() < 6) {
str = "0" + str;
}
System.out.println(str); // 输出:000123
- 说明:
- 适用场景:输入可能包含非数字字符,且需要统一补 0 处理。
方法 4:使用StringUtils.leftPad()
(Apache Commons Lang)
需要引入依赖,但功能强大:
import org.apache.commons.lang3.StringUtils;
String str = "123";
String paddedStr = StringUtils.leftPad(str, 6, '0');
System.out.println(paddedStr); // 输出:000123
依赖配置:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
- 优点:
- 自动处理
null
输入(返回null
)。 - 支持自定义填充字符(如
leftPad(str, 6, ' ')
补空格)。
- 自动处理
方法 5:使用 Java 11 + 的String.repeat()
优雅的单行实现:
String str = "123";
String paddedStr = "0".repeat(Math.max(0, 6 - str.length())) + str;
System.out.println(paddedStr); // 输出:000123
- 说明:
- 适用场景:Java 11 及以上版本,简洁高效。