[英]Converting String to byte array for hex values
我正在使用 Android 手機與 BLE 設備進行通信。
為庫發送數據的方法需要byte[],共享靜態示例片段之一:
public static final byte dataRequest[] = { 0x23, 0x57, 0x09, 0x03, (byte) 0xD4};
sendDataToDevice(dataRequest);
我從用戶那里收到的數據是字符串,例如
String str1 = "D4";
現在我的問題是,如何將此字符串值(實際上是字符串數據類型中的十六進制值)轉換為字節,以便我可以存儲這些動態字符串值並進行轉換,然后將其插入到字節 [] 中,例如,
byte[0] = convertToByte(str1);
其中 byte[0] 必須將值存儲為 0xD9 或類似於靜態示例中給出的格式。
您應該能夠使用radix
為16
(十六進制)的Integer#parseInt
將String
轉換為int
(然后您可以將其轉換為一個byte
並存儲在您的數組中):
String str1 = "D4";
byte b = (byte) Integer.parseInt(str1, 16);
System.out.println(b);
輸出:
-44
注意: Byte#parseByte
不能在您的示例中使用,因為Byte#parseByte
Integer#parseInt
內部使用Integer#parseInt
並將D4
解析為212
,這不是有符號byte
的有效值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.