You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何给十六进制字符串前补0使其固定长度为4位?

解决方案

方法1:直接格式化int生成目标字符串(最优,无需额外处理)

你不需要先转十六进制字符串再补0,直接用String.format的十六进制格式化规则即可一步实现:

  • %X表示输出大写十六进制
  • 04表示长度不足4位时自动在前补0
    示例代码:
public static void main(String[] args) {
    int count = 255; // 对应十六进制FF,可替换为你的动态count变量
    String orderID = String.format("%04X", count);
    System.out.println(orderID); // 输出00FF
}

方法2:对已有的十六进制字符串补0(无需引入第三方依赖)

如果你已经拿到了现成的十六进制字符串,不需要用StringUtils.leftPad,用JDK原生方法即可实现:

  • Java 11及以上版本:
String hexStr = "FF";
if (hexStr.length() < 4) {
    hexStr = "0".repeat(4 - hexStr.length()) + hexStr;
}
// 输出00FF
  • 低版本Java兼容写法:
String hexStr = "FF";
hexStr = String.format("%4s", hexStr).replace(' ', '0');
// 输出00FF

原代码不生效的原因

你之前使用%04d格式化的是十进制整数,所以得到的是十进制的补0结果,不是十六进制格式。IntelliJ无法识别StringUtils.leftPad是因为你没有导入Apache Commons Lang3的依赖,上述方案全部用JDK原生API实现,不需要引入额外依赖。

内容的提问来源于stack exchange,提问作者Ava-123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:54:02