我需要一种方法将数字打印为十六进制,作为宽度为N的零填充字符串,其中N可在运行时选择。
这不起作用:
System.out.println(String.format("%*x", 4, 0x123))
因为显然Java不支持C-style use of %* for runtime-selectable width format strings。
有关替代方案的任何建议吗?
答案 0 :(得分:6)
int width = 4;
String format = "%" + width + "x";
System.out.println(String.format(format, 0x123));
:wrysmile:
答案 1 :(得分:1)
@fd也使用printf
int width = 4;
String format = "%" + width + "x";
System.out.printf(format, 0x123);
System.out.printf("%4x", 0x123);
答案 2 :(得分:-2)
使用适当的NumberFormat。
修改
这是完全错误的..