把从SD卡里取出来的字符串“0x03 0x04 0x05"转为(byte)0x03 (byte)0x03
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
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;  
    }  
    private static byte charToByte(char c) {  
        return (byte) "0123456789ABCDEF".indexOf(c);  
    }  
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        byte[] by = hexStringToBytes("0x030x040x05");
        byte[] by2 = new byte[]{(byte) 0x03,(byte) 0x04,(byte) 0x05};
                //这两个by和by2是一致的
    }