为了账号安全,请及时绑定邮箱和手机立即绑定

java 将十六进制字符数组转换为字节数组

java 将十六进制字符数组转换为字节数组

慕森卡 2023-08-23 17:03:34
在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;

}


查看完整回答
反对 回复 2023-08-23
  • 1 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信