将int转换为十六进制字符串

时间:2015-03-31 13:37:37

标签: java

我的int数为1238,当我用Integer.toHexString函数转换为十六进制字符串时,它会返回4d6。有什么方法可以格式化,所以它会返回04d6吗?如果你能为一般案例提供解决方案,那就太好了,而不是这个具体案例。 谢谢。

2 个答案:

答案 0 :(得分:2)

  

如果您能为一般案例提供解决方案,那将会很棒   这个具体案例

这是一个快速解决方案,在十六进制字符串长度不是2的倍数的情况下将添加左0。

StringBuilder sb = new StringBuilder();
sb.append(Integer.toHexString(myInt));
if (sb.length() % 2 > 0) {
    sb.insert(0, '0'); // pad with leading zero if needed
}
String hex = sb.toString();

答案 1 :(得分:1)

System.out.println(String.format("%04x",1238));  ->  "04d6"
System.out.println(String.format("%#04x",1238)); -> "0x4d6"