我需要在我的字符串中附加一些十六进制字符。我正在尝试这个:
content += Character.toString((char) Integer.parseInt(Integer.toHexString(originalSize).toString(), 16));
它正在工作,但是当originalSize
超过 127(十六进制为 7F)时,它会返回两个十六进制值。
例如,这样做:
content += Character.toString((char) Integer.parseInt(Integer.toHexString(176).toString(), 16));
结果是:(content hex numbers) C0 B0
B0 是十六进制的 176,但我不知道如何删除 C0。请问有什么建议吗?谢谢!
编辑:
我想通过低功耗蓝牙向设备发送字符串。我有一个这样的字符串:
“ABCABC”。十六进制是41 42 43 41 42 43
.
现在,我想添加这个字符串的格式(因为设备正在等待它),所以我在末尾添加它:41 42 43 41 42 43 7E 06 02
,其中:
7E
: 格式的开始06:
字符数02
:制造商给出的具体格式。
我有主字符串,我正在手动添加这三个十六进制字符。
解决方案:
基于 Devon_C_Miller 的回答,我找到了自己的解决方案:
contentFormated = new byte[originalSize+3];
for(int i=0;i<originalSize;i++){
contentFormated[i] = content.getBytes()[i];
}
contentFormated[originalSize] = 0x7E;
contentFormated[originalSize+1] = (byte) 0xB0;
contentFormated[originalSize+2] = 0x02;