Конвертировать массив шестнадцатеричных символов в байтовый массив Java - PullRequest
0 голосов
/ 24 сентября 2019

Как я могу преобразовать массив символов из шестнадцатеричного в байтовый массив в Java?Я не хочу конвертировать массив символов в строку из соображений безопасности.

Существует ли какая-либо встроенная библиотека для этого преобразования в Java 8?

1 Ответ

0 голосов
/ 24 сентября 2019

Нет единого метода 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...