簡體   English   中英

將 char 十六進制數組轉換為字節數組 java

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM