Если Вы вносите существенные изменения и обеспокоены влиянием на других, работающих над кодом, можно создать новое ответвление, и затем объединиться назад в соединительную линию после того, как изменения завершены.
Будьте очень осторожны с вашей терминологией, иначе вы запутаетесь. Не существует такого понятия, как «смещение байта в строке Java». Строки Java состоят из 16-битных символов.
Итак, я предполагаю, что у вас есть массив байтов и смещение, и вы хотите преобразовать их в строку Java, сохранив при этом местоположения (чтобы вы могли отображать туда и обратно).
Это зависит от кодировки байтового массива. Если это UTF-8, то любой байт, для которого установлен MSB, является частью последовательности кодирования. Найдите байт, который byte & 0xc0 == 0xc0
. Это начало последовательности кодирования (см. Статью Википедии ).
Если вы спрашиваете о символах, то кодировка - UTF-16, и вам нужно искать суррогатные пары .
Я бы посоветовал вам не использовать байтовое смещение в стандартной строке Java. Если да, то можете ли вы сказать нам, кто у вас его (укажите код)