此问题已在此处找到答案:
在java中将字符串转换为十六进制(21个答案)两天前关门了。我想在java中用十六进制格式化字符串。e、 g.投入: 123123 ,输出: 1E 0F 03 这是我的密码:
123123
1E 0F 03
String.format("%02X", integer)
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());
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
2条答案
按热度按时间vs3odd8k1#
尝试以下方法:
chhkpiq42#
你可以这样做
将值转换为大写十六进制
根据长度预加“0”
然后拆分并重新联接(正则表达式每两个字符在零宽度区域上拆分一次)。
印刷品