如何在java中格式化十六进制字符串?

thtygnil  于 2021-08-25  发布在  Java
关注(0)|答案(2)|浏览(427)

此问题已在此处找到答案

在java中将字符串转换为十六进制(21个答案)
两天前关门了。
我想在java中用十六进制格式化字符串。
e、 g.投入: 123123 ,输出: 1E 0F 03 这是我的密码:

String.format("%02X", integer)
vs3odd8k

vs3odd8k1#

尝试以下方法:

int n = 123123;
        StringBuilder sb = new StringBuilder();
        String sep = "";
        while (n > 0) {
            int nybble = n & 0xFF;
            sb.insert(0, sep);
            sb.insert(0, String.format("%02X", nybble));
            sep = " ";
            n >>>= 8;
        }
        System.out.println(sb.toString());
chhkpiq4

chhkpiq42#

你可以这样做
将值转换为大写十六进制
根据长度预加“0”
然后拆分并重新联接(正则表达式每两个字符在零宽度区域上拆分一次)。

for (int val : new int[] { 123123, 122, 94392, 9200812 }) {
    String valStr = String.format("%X",val);
    valStr = (valStr.length() % 2 == 0 ? "" : "0") + valStr;
    String result = String.join(" ", valStr.split("(?<=\\G(..))"));
    System.out.printf("%7d = %10s = %s%n", val, valStr, result);
}

印刷品

123123 =     01E0F3 = 01 E0 F3
    122 =         7A = 7A
  94392 =     0170B8 = 01 70 B8
9200812 =     8C64AC = 8C 64 AC

相关问题