要将十六进制字符串转换为字节数组,您需要首先获取给定字符串的长度,并在创建新的字节数组时将其包括在内。
byte[] val = new byte[str.length() / 2];
现在,进行一个for循环,直到字节数组的长度为止。
for (int i = 0; i < val.length; i++) {
int index = i * 2;
int j = Integer.parseInt(str.substring(index, index + 2), 16);
val[i] = (byte) j;
}让我们看完整的例子。
public class Demo {
public static void main(String args[]) {
String str = "p";
byte[] val = new byte[str.length() / 2];
for (int i = 0; i < val.length; i++) {
int index = i * 2;
int j = Integer.parseInt(str.substring(index, index + 2), 16);
val[i] = (byte) j;
}
System.out.println(val);
}
}输出结果
[B@2a139a55