gpt4 book ai didi

java - 将字符串转换为十六进制值的字节数组

转载 作者:行者123 更新时间:2023-11-30 05:40:58 25 4
gpt4 key购买 nike

我正在使用 Android 手机与 BLE 设备通信。

库发送数据的方法需要byte[],共享静态示例片段之一:

 public static final byte dataRequest[] = { 0x23,  0x57,  0x09,  0x03, (byte) 0xD4};
sendDataToDevice(dataRequest);

例如,我从用户接收的数据是字符串形式的

String str1 = "D4";

现在我的问题是,如何将此字符串值(实际上是字符串数据类型中的十六进制值)转换为字节,以便我可以存储这些动态字符串值并进行转换,然后将其插入到 byte[] 中,例如,

byte[0] = convertToByte(str1);

其中 byte[0] 必须将值存储为 0xD9 或类似于静态示例中给出的格式。

最佳答案

您应该能够使用 Integer#parseIntradix16(十六进制)来转换 String 转换为 int (然后您可以将其转换为 byte 并存储在数组中):

String str1 = "D4";
byte b = (byte) Integer.parseInt(str1, 16);
System.out.println(b);

输出:

-44

注意:Byte#parseByte 不能在您的示例中使用,因为 Byte#parseByte 在内部使用 Integer#parseInt 并解析 D4212,这不是有符号 字节 的有效值。

关于java - 将字符串转换为十六进制值的字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55681283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com