ОБНОВЛЕНОПроверьте наличие especific значения внутри строки
В моем приложении, у меня есть сплошная связь с печатной платой через Bluetooth. Это сообщение сделано HEX Strings.
Формат Строка, как это:
2b(thread init), 05(write command), 09(bytes), 04(variable bytes), 5af2ff1f(memory location), 04a0bcf1(variable value), 7e(checksum)
Функция этой строки является Hex, чтобы получить доступ к конкретной ячейке памяти печатной платы и записать значение.
Чтобы сделать это проще, позволяет suppouse, что строка Hex является:
hex_string= 2B05A82BF1
Эта строка, прежде чем отправить его через Bluetooth, преобразовать его в Byte []. Мне нужно создать функцию, которая проверяет все строки, которые я отправляю.
Что я должен искать, это для любого байта «2B» внутри строки. Это связано с тем, что печатная плата считывает значение «2b» как значение «init thread», и если в строке есть «2b», PCB будет читать ее как init другого потока, и строка не будет отправлена полностью.
Не знаю, проще ли проверить это с помощью Hex String или после его преобразования в Byte [].
Функция должна состоять в том, чтобы сфотографировать первый «2b» строки и проверить, есть ли в строке другая «2b», и если это так, дублируйте ее, в результате чего это.
before: hex_string= 2B05A82BF1
after: hex_string= 2B05A82B2BF1
Таким образом, PCB понимает, что «2b» не является значением потока инициализации.
Что я хочу сделать, это функция, которая проверяет всю строку, содержащую значение «2b» внутри нее. Но я не знаю, лучше ли это делать с помощью строки Hex, когда она преобразуется в байт [] ... или когда ... и как это сделать.
Вы просто хотите, чтобы проверить, если строка содержит несколько значений. Может быть, с помощью substring() достаточно? –
Я уточнил вопрос с более подробным объяснением – masmic
, если я не ошибаюсь, и получите строку что-то вроде 2BXXXXXX2BXXXX, и вы хотите, чтобы она изменилась, как 2BXXXXXX2B2BXXXX – amithgc