[英]Convert char hex array to byte array java
如何在 Java 中将十六进制字符数组转换为字节数组? 出于安全原因,我不想将 char 数组转换为字符串。
Java 8 中是否有可用于此转换的内置库?
没有单一的 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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.