如何在 Java 中以十六进制字符串转换字节数组

您所在的位置:网站首页 Hex数组转Hex字符串 如何在 Java 中以十六进制字符串转换字节数组

如何在 Java 中以十六进制字符串转换字节数组

2024-06-20 13:03| 来源: 网络整理| 查看: 265

HEX_ARRAY[] 方法将字节数组转换为 Java 中的十六进制字符串 Hex.encodeHexString() 方法将 Java 中的字节数组转换为十六进制字符串 DatatypeConverter() 方法以 Java 中的十六进制字符串转换字节数组 用 append(.format) 方法将 Java 中的字节数组转换为十六进制字符串

在本教程中,我们将学习如何在 Java 中将字节数组转换为十六进制字符串。

HEX_ARRAY[] 方法将字节数组转换为 Java 中的十六进制字符串

我们将从第一个方法开始,对于此转换,我们将使用由所有可能的十六进制值组成的 HEX_ARRAY[]。此方法比其他任何方法都快。

示例代码:

public class SimpleTesting { public static void main(String[] args) { char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray(); byte b[] = new byte[2]; b[0] = 20; b[1] = 10; char[] hexChars = new char[b.length * 2]; for (int j = 0; j >> 4]; hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F]; } System.out.println(hexChars); } }

输出:

140A Hex.encodeHexString() 方法将 Java 中的字节数组转换为十六进制字符串

在 Java 中将字节数组转换为十六进制字符串的第二种方法是 Hex.encodeHexString() 方法。由于它是一个 apache 的公共库,因此需要先将 apache.commons.codec.binary.Hex() 方法导入编译器中。

示例代码:

import java.util.Arrays; import org.apache.commons.codec.binary.Hex; public class SimpleTesting { public static void main(String[] args) { byte[] byteArray = new byte[] {'S', 'i', 'm', 'p', 'l', 'e', 'T', 'e', 's', 't', 'i', 'n', 'g'}; System.out.println("Byte Array: "); System.out.println(Arrays.toString(byteArray)); System.out.println("Hex String Conversion: " + Hex.encodeHexString(byteArray)); } }

输出:

Byte Array: [83, 105, 109, 112, 108, 101, 84, 101, 115, 116, 105, 110, 103] Hex String Conversion: 53696d706c6554657374696e67 DatatypeConverter() 方法以 Java 中的十六进制字符串转换字节数组

另一种方法是 Java 中的 javax.xml.bind.DatatypeConverter.printHexBinary() 方法。该方法获取字节并将其从数组转换为 Hex。

示例代码:

import java.util.Arrays; import javax.xml.bind.*; public class SimpleTesting { public static void main(String[] args) { byte byteArray[] = {(byte) 00, (byte) 10, (byte) 20, (byte) 30, (byte) 40}; String hexString = javax.xml.bind.DatatypeConverter.printHexBinary(byteArray); System.out.println("Byte Array: "); System.out.println(Arrays.toString(byteArray)); System.out.println("Hex String Conversion: " + hexString); } }

输出:

Byte Array: [0, 10, 20, 30, 40] Hex String Conversion: 000A141E28 用 append(.format) 方法将 Java 中的字节数组转换为十六进制字符串

我们可以使用的另一种方法是在 Java 中使用 stringBuilder 中包含的 append(.format)。它的工作原理是将字节数组中的每个单个值转换为相应的十六进制字符串。

示例代码:

public class SimpleTesting { public static void main(String[] args) { byte a[] = new byte[2]; a[0] = 20; a[1] = 10; StringBuilder sb = new StringBuilder(a.length * 2); for (byte b : a) sb.append(String.format("%02x", b)); System.out.println(sb); } }

输出:

140a


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3