Java语言将16进制字符串转为字面值相同的字节数组

/**
 * 将16进制字符串转为字节数组
 *
 * @param hexString
 * @return byte[]
 * @author zxzhang
 * @date 2019/12/12
 */
public static byte[] hexStringToBytes(String hexString) {
    if (hexString == null || hexString.equals("")) {
        return null;
    }
    hexString = hexString.toUpperCase();
    if (hexString.indexOf("0X") >= 0) hexString = hexString.replace("0X", "");
    int length = hexString.length() / 2;
    char[] hexChars = hexString.toCharArray();
    byte[] d = new byte[length];
    for (int i = 0; i < length; i++) {
        int pos = i * 2;
        d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
    }
    return d;
}

/**
 * 将char转为byte
 *
 * @param c
 * @return byte
 * @author zxzhang
 * @date 2019/12/12
 */
private static byte charToByte(char c) {
    return (byte) "0123456789ABCDEF".indexOf(c);
}
发布了341 篇原创文章 · 获赞 376 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/qq_19734597/article/details/103516357