如何将包含“+=��@0.��o2E”的字符串转换为短数组?

时间:2019-09-23 04:28:13

标签: java string hex byte short

我正在通过ArduinoUart向Android发送十六进制值。我将byte[]缓冲区中收到的字节存储到Android端的长字符串中。而且,在以字符串形式存储之后,我想将其转换为十六进制,或者希望我的数组支持大于128的值。

当我这样做

byte[] received_byte= string.getBytes();
String received = bytesToHex(received_array);

static String bytesToHex(byte[] hashInBytes) {
    StringBuilder value = new StringBuilder();
    for (byte b : hashInBytes) {
        value.append(String.format("%02x", b & 0xff));
    }
    return value.toString();
}

Arduino发送此消息:2b18021a00011a1a0708403081806f0132140845

收到的字符串包含以下内容:2b18021a00011a1a07084030efbfbdefbfbdefbfbd6f0132140845

我知道字节不支持大于128的值。我什至尝试更改short []中的Received_byte,但是问题在于我的字符串包含此"+=��@0���o2E",因为我直接从byte[]缓冲区。

如果我不清楚我的问题,请告诉我。

0 个答案:

没有答案