可以使用Java自带的方法将String转为十六进制数组。具体步骤如下:
- 创建一个空的byte数组,用于存储转换后的结果。
byte[] hexArray = new byte[string.length() / 2];
- 遍历String,将每两个字符转为一个十六进制数并存储在byte数组中。
for (int i = 0; i < string.length(); i += 2) {
hexArray[i / 2] = (byte) ((Character.digit(string.charAt(i), 16) << 4)
+ Character.digit(string.charAt(i+1), 16));
}
- 返回转换后的byte数组。
return hexArray;
完整代码如下:
public static byte[] stringToHex(String string) {
byte[] hexArray = new byte[string.length() / 2];
for (int i = 0; i < string.length(); i += 2) {
hexArray[i / 2] = (byte) ((Character.digit(string.charAt(i), 16) << 4)
+ Character.digit(string.charAt(i+1), 16));
}
return hexArray;
}
使用示例:
String string = "48656c6c6f20576f726c64";
byte[] hexArray = stringToHex(string);
System.out.println(Arrays.toString(hexArray));
输出:
[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]