📅  最后修改于: 2023-12-03 15:38:45.577000             🧑  作者: Mango
在一些程序中,我们需要将字节数组或十六进制字符串进行转换,以便于传输、存储或展示。本文将介绍如何进行字节数组与十六进制字符串之间的转换。
将字节数组转换为十六进制字符串,可以使用Java中的BigInteger类和StringBuffer类来实现。具体步骤如下:
下面是Java代码片段,将字节数组转换为十六进制字符串:
byte[] byteArray = {0x12, 0x34, (byte) 0xAB, (byte) 0xCD};
BigInteger bigInteger = new BigInteger(1, byteArray);
String hexString = bigInteger.toString(16);
int paddingLength = (byteArray.length * 2) - hexString.length();
if (paddingLength > 0) {
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < paddingLength; i++) {
stringBuffer.insert(0, "0");
}
hexString = stringBuffer.toString() + hexString;
}
System.out.println(hexString); // "1234abcd"
将十六进制字符串转换为字节数组,可以使用Java中的DatatypeConverter类和ByteBuffer类来实现。具体步骤如下:
下面是Java代码片段,将十六进制字符串转换为字节数组:
String hexString = "1234abcd";
byte[] byteArray = DatatypeConverter.parseHexBinary(hexString);
ByteBuffer byteBuffer = ByteBuffer.wrap(byteArray);
System.out.println(Arrays.toString(byteBuffer.array())); // [18, 52, -85, -51]
到这里,我们就成功地实现了字节数组与十六进制字符串之间的转换。在实际开发中,根据具体情况选择适合的方法即可。