У меня есть байтовый массив (строка в кодировке UTF-8 отправляется как байтовый массив от клиента).
Сообщение должно иметь следующий формат:
'число' 'отметка времени' 'str1' 'str2'
* 1005 например *
1 2000-01-31T20: 00.00 1-я улица 2-я улица
Понятно, что 'число' и 'метка времени' легко читаются из байтового массива. Начальная позиция 'str1' также может быть определена.
Учитывая, что «str1» и «str2» могут содержать любой контент (любой длины), какой тип разделителя можно использовать, чтобы узнать, когда заканчивается «str1» и начинается «str2»? Или есть какие-то другие приемы для разбора чего-то подобного.
note1: формат сообщения предоставлен мной, поэтому любое решение с другим форматом / порядком будет работать до тех пор, пока все 4 фрагмента информации находятся в байтовом массиве.
note2: я знаю, что мог бы кодировать str1, чтобы он не содержал мой пользовательский разделитель, но я бы хотел избежать накладных расходов на кодирование / декодирование данных.
note3: Одним из решений, которое я мог придумать, было написать длину str1 перед ним при отправке данных со стороны клиента.
Например, 'число' 'отметка времени' 'длина_строки' 'str1' 'str2'
Есть ли еще какие-нибудь хитрости, о которых вы можете подумать?
спасибо