文字列に 16 進文字を追加する必要があります。私はこれを試しています:
content += Character.toString((char) Integer.parseInt(Integer.toHexString(originalSize).toString(), 16));
それは機能originalSize
していますが、127 (16 進数で 7F) を超えると、2 つの 16 進数値が返されます。
たとえば、次のようにします。
content += Character.toString((char) Integer.parseInt(Integer.toHexString(176).toString(), 16));
結果は次のとおりです。(content hex numbers) C0 B0
B0 は 16 進数で 176 ですが、C0 を削除する方法がわかりません。何か提案はありますか?ありがとう!
編集:
Bluetooth Low Energy 経由で文字列をデバイスに送信したいと考えています。次のような文字列があります。
「ABCABC」。16 進数では41 42 43 41 42 43
.
ここで、この文字列の形式を追加したいので (デバイスがそれを待っているため)、最後に追加します: 41 42 43 41 42 43 7E 06 02
、ここで:
7E
: フォーマットの始まり06:
文字数02
: 製造元によって指定された特定の形式。
メインの文字列があり、この 3 つの 16 進数文字を手動で追加しています。
解決:
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;