如题问题(如将String型数据“fe”转换成byte型数据0xfe等)。方法如下(因同事需要而网上找不到答案所以我临时写了一个,时间仓促,可能不够优化):
private byte getByteFromString(String str) {
byte retByte = 0;
int len = str.length();
for (int i=0; i<len; i++) {
char ch = str.charAt(i);
if ((ch >= '0') && (ch <= '9')) {
retByte |= ((ch-'0'+0x00) << ((len-i-1)*4));
// 或者 retByte |= (Byte.valueOf(String.valueOf(ch)) << ((len-i-1)*4));
} else if (ch >= 'a' && ch <= 'f') {
retByte |= ((ch-'a'+0x0a) << ((len-i-1)*4));
} else if (ch >= 'A' && ch <= 'F') {
retByte |= ((ch-'A'+0x0a) << ((len-i-1)*4));
}
}
return retByte;
}