如何转换java中保留相同值的十六进制字符串。Java将十六进制字符串转换为java:char [](C)to byte [](JAVA)
在C我有:
char tab[24] = { 0x02, 0x04, 0xF3, 0xFC, 0xFF, 0x06, 0x00, 0xF7, 0x00, 0x00, 0x09, 0xFD, 0xFD, 0x00, 0x03, 0x0A, 0xFD, 0x02, 0xFD, 0x08, 0x08, 0x00, 0x01, 0xFD };
而且我复制到Java像串;
String hexString = "0x02, 0x04, 0xF3, 0xFC, 0xFF, 0x06, 0x00, 0xF7, 0x00, 0x00, 0x09, 0xFD, 0xFD, 0x00, 0x03, 0x0A, 0xFD, 0x02, 0xFD, 0x08, 0x08, 0x00, 0x01, 0xFD";
现在我想在字节[]转换,我想办法如何做到这一点,但它看起来像我不正确的格式转换。
解决
String[] split = hexString.split(", ");
byte[] arr = new byte[split.length];
for (int i = 0; i < split.length; i++)
{
arr[i] = (byte)(short)Short.decode(split[i]);
}
现在我有类似的东西。缺少整数。那么哪一个更好? – rikkima
而不是使用'parseShort',你也可以说'arr [i] =(byte)(short)Short.decode(split [i]);'它会自动识别字符串前面的“0x”if在那。需要额外的演员来解除短路。 – ajb