将一些字节的十六进制字符串表示形式转换为Java中的字节数组

时间:2011-03-24 21:33:08

标签: java

我很难尝试将包含某些字节的十六进制表示的String转换为其对应的字节数组。

我使用以下代码获得32字节:

StringBuffer sb = new StringBuffer();
for (int i = 0; i < mdbytes.length; i++) {
    sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
return sb.toString();

知道如何从String到数组吗?换句话说,如何反转上面的代码。

感谢。

3 个答案:

答案 0 :(得分:4)

我会尝试使用commons-codec byte[] originalBytes = Hex.decodeHex(string.toCharArray())。实际上我也会将它用于编码部分。

答案 1 :(得分:1)

您可以使用Integer.parseInt(String s, int radix)方法将十六进制表示转换回整数,然后可以将其转换为字节。用它来一次处理字符串两个字符。

答案 2 :(得分:-1)

使用

String.getBytes();

方法