我想将int数字格式化为十六进制字符串。 System.out.println(Integer.toHexString(1));
打印1
,但我希望它为0x00000001
。我该怎么做?
答案 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.Formatter或the printf method。
答案 5 :(得分:0)
不那么冗长:
System.out.printf("0x%08x", 1); //"Use %0X for upper case letters