如何轉換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