Я хочу форматировать числа int как шестнадцатеричные строки. System.out.println(Integer.toHexString(1));
печатает 1
, но я хочу, чтобы он был 0x00000001
. Как это сделать?
Как форматировать числа в шестнадцатеричные строки?
Ответ 1
Попробуйте это
System.out.println(String.format("0x%08X", 1));
Ответ 2
Вы можете использовать String.format для форматирования целого числа в виде шестнадцатеричной строки.
System.out.println(String.format("0x%08X", 1));
То есть, pad с нулями и сделать полную ширину 8. 1 преобразуется в hex для вас. Вышеприведенная строка дает: 0x00000001
и
System.out.println(String.format("0x%08X", 234));
дает: 0x000000EA
Ответ 3
Из синтаксиса форматирования, документированного на Java Formatter class:
Integer intObject = Integer.valueOf(1);
String s = String.format("0x%08x", intObject);
System.out.println(s);
Ответ 4
Вы можете использовать java.util.Formatter или метод printf в PrintStream.
Ответ 5
Я не слишком хорошо знаю Java, но должен быть способ выставить вывод из функции toHexString с "0" на длину 8. Если "0x" всегда будет в начале, просто нажмите на эту строку до начала.