如何将数字格式化为十六进制字符串?

时间:2012-12-13 01:54:26

标签: java formatting

我想将int数字格式化为十六进制字符串。 System.out.println(Integer.toHexString(1));打印1,但我希望它为0x00000001。我该怎么做?

6 个答案:

答案 0 :(得分:41)

试试这个

System.out.println(String.format("0x%08X", 1));

答案 1 :(得分:19)

您可以使用String.format将整数格式化为十六进制字符串。

   System.out.println(String.format("0x%08X", 1));

也就是说,用零填充,并使总宽度为8. 1为您转换为十六进制。上面的行给出了:0x00000001

   System.out.println(String.format("0x%08X", 234));

给出:0x000000EA

答案 2 :(得分:2)

从Java的Formatter类:

中记录的格式化语法
Integer intObject = Integer.valueOf(1);
String s = String.format("0x%08x", intObject);
System.out.println(s);

答案 3 :(得分:1)

我不太熟悉Java,但必须有一种方法可以将toHexString函数的输出填充为'0'到8的长度。如果“0x”始终在开头,只需将该字符串添加到开头。

答案 4 :(得分:0)

您可以在PrintStream上使用java.util.Formatterthe printf method

答案 5 :(得分:0)

不那么冗长:

System.out.printf("0x%08x", 1); //"Use %0X for upper case letters