人们可能会遇到需要将字节数组转换为相应的十六进制值的情况。 Java 提供了一种简单的方法来有效地实现此转换。
将字节数组转换为十六进制的最简洁方法是利用 StringBuilder 类:
byte[] bytes = {-1, 0, 1, 2, 3 }; StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(String.format("%02X ", b)); } System.out.println(sb.toString());
此代码迭代数组中的每个字节,将其转换为带有前导零 (X) 的十六进制字符串,并将其附加到字符串生成器。生成的字符串包含由空格分隔的十六进制值。
某些场景可能需要将十进制值的字符串数组转换为十六进制字符串。这可以通过以下方式实现:
String[] arr = {"-1", "0", "10", "20" }; for (int i = 0; i < arr.length; i++) { arr[i] = String.format("%02x", Byte.parseByte(arr[i])); } System.out.println(java.util.Arrays.toString(arr));
此代码将数组中的每个字符串转换为字节,然后使用 String.format 方法创建带有前导零的十六进制字符串。
请注意,也可以使用 Integer.toHexString(int),但在使用负字节值时要小心符号扩展。另外,String.format 解决方案更可靠、更灵活。
以上是Java中如何高效地将字节数组转换为十六进制?的详细内容。更多信息请关注PHP中文网其他相关文章!