在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
提交
取消