第一步、将十六进制的字符串除以二,算出字节数组的长度;
第二步、根据字节数组的长度,创建字节数组;
第三步、将字符串转换为字符数组;
第四步、将字符转换为字节;
第五步、十六进制的字节分为高四位与低四位,所以将高四位的字节左移4位,再与第四位的字节相或,就得到一个十六进制的字节;
第六步,将十六进制的字节逐个放到字节数组中即可。
public byte[] hexStrToBytes(String hexStr){
int len = hexStr.length()/2;
byte[] bytes = new byte[len];
char[] chars = hexStr.toCharArray();
for(int i=0;i<len;i++){
bytes[i] = (toByte(chars[i])<<4) | toByte[i*2];
}
return bytes;
}
public byte toByte(char c){
byte b = "0123456789ABCDEF".indexOf(c);
return b;
}