我很难尝试将包含十六进制字符串表示形式的字符串转换为其相应的十六进制字符串字节数组。
我尝试了这段代码
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 }。
例如:"01FF0A2357F01A"结果应该像这样byte[] { 01 FF 0A 12 57 F0 1A }。
最佳答案
我认为你的期望不太正确,但是,
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
的十六进制字符串表示
关于java - Java中将十六进制字符串转换为十六进制字符串字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51889911/