簡體   English   中英

將字符串轉換為十六進制值的字節數組

[英]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 或類似於靜態示例中給出的格式。

您應該能夠使用radix16 (十六進制)的Integer#parseIntString轉換為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM