我很难尝试将包含十六进制字符串表示形式的String转换为其相应的十六进制字符串字节数组。
我尝试了此代码
public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) (((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s
.charAt(i + 1), 16)) & 0xFF);
}
return data;
}
这不是我在上面代码中寻找的“ FF”-> -1的确切值。
期望是“ FF”-> byte [] {FF}。
Ex:“ 01FF0A2357F01A” 结果应类似于此 byte [] {01 FF 0A 12 57 F0 1A}。
答案 0 :(得分:1)
我认为您的期望不是很正确,但是
String hex = "ff";
Integer i = Integer.valueOf(hex, 16);
System.out.println(i);
Byte b = i.byteValue();
System.out.println(b);
System.out.println(Integer.toHexString(i));
FF
是-1
的十六进制字符串表示形式