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

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

此问题已在此处找到答案

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

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

vs3odd8k1#

尝试以下方法:

  1. int n = 123123;
  2. StringBuilder sb = new StringBuilder();
  3. String sep = "";
  4. while (n > 0) {
  5. int nybble = n & 0xFF;
  6. sb.insert(0, sep);
  7. sb.insert(0, String.format("%02X", nybble));
  8. sep = " ";
  9. n >>>= 8;
  10. }
  11. System.out.println(sb.toString());
chhkpiq4

chhkpiq42#

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

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

印刷品

  1. 123123 = 01E0F3 = 01 E0 F3
  2. 122 = 7A = 7A
  3. 94392 = 0170B8 = 01 70 B8
  4. 9200812 = 8C64AC = 8C 64 AC
展开查看全部

相关问题