在Java中如何将十六进制的字符数组转换为字节数组?出于安全原因,我不想将字符数组转换为字符串。Java 8 中是否有任何内置库可用于此转换?
1 回答
神不在的星期二
TA贡献1963条经验 获得超6个赞
没有单一的 Java SE 方法,但使用Character.digit则相当简单:
byte[] parse(char[] hex) {
int len = hex.length;
if (len % 2 != 0) {
throw new IllegalArgumentException(
"Even number of digits required");
}
byte[] bytes = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
int high = Character.digit(hex[i], 16);
int low = Character.digit(hex[i + 1], 16);
bytes[i / 2] = (byte) (high << 4 | low);
}
return bytes;
}
添加回答
举报
0/150
提交
取消