public static ByteBuffer hexStringToByteBuffer()

in src/main/java/com/aliyun/dts/subscribe/clients/common/BytesUtil.java [331:363]


    public static ByteBuffer hexStringToByteBuffer(String hexString) {
        char[] chars = hexString.toCharArray();
        byte byteData = 0;

        ByteBuffer byteBuffer = ByteBuffer.allocate((chars.length + 1) >> 1);

        for (int i = 0; i < chars.length; i++) {
            if (chars[i] < 'A') {
                // chars[i] is a number
                byteData |= (chars[i] - '0') & 0x0F;
            } else if (chars[i] < 'a') {
                // chars[i] is a upper alphabet
                byteData |= (10 + (chars[i] - 'A')) & 0x0F;
            } else {
                // chars[i] is a lower alphabet
                byteData |= (10 + (chars[i] - 'a')) & 0x0F;
            }

            if (0 != (i & 0x01)) {
                // compose a whole byte
                byteBuffer.put(byteData);
                byteData = 0;
            } else {
                byteData = (byte) (byteData << (byte) 4);
            }
        }

        if (0 != (chars.length & 0x01)) {
            byteBuffer.put(byteData);
        }

        return byteBuffer;
    }