将字符串转换成16进制字节数组和16进制数组的小方法
技术交流群:233513714
一、将字符串转换成int数组
/**
* 将字符串转换为16进制int数组
* @param hexString
* @return returnBytes
*/
private static int[] strToToHexByte(String hexString) {
hexString = hexString.replace(" ", "");
// 如果长度不是偶数,就在后面添加空格
if ((hexString.length() % 2) != 0) {
hexString += " ";
}
// 定义一个数组,长度是待转换数组长度的一半
int[] returnBytes = new int[hexString.length() / 2];
for (int i = 0; i < returnBytes.length; i++) {
returnBytes[i] = (0xff & Integer.parseInt(hexString.substring(i * 2, i * 2 + 2), 16));
}
return returnBytes;
}
二、将字符串转换成16进制字节数组
/**
* 将字符串转换成16进制字节数组
* @param str
* @return byte[]
*/
public static byte[] stringToByte16(String str) {
str = str.replace(" ", "");
if ((str.length() % 2) != 0) {
str += " ";
}
byte[] by = new byte[str.length() / 2];
for (int i = 0; i < str.length() / 2; ++i) {
by[i] = (byte)(Integer.parseInt(str.substring(i * 2,i * 2 + 2),16) & 0xff);
}
return by;
}