Мне нужно добавить некоторые шестнадцатеричные символы к моей строке. Я пытаюсь это:
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. Любые предложения, пожалуйста? Спасибо!
ИЗМЕНИТЬ:
Я хочу отправить строку на устройство через Bluetooth Low Energy. У меня есть такая строка:
"АБКАБК". В шестнадцатеричном виде это 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;