У меня есть фрагмент текста с символами разных байтов.
let text = "Hello привет";
Мне нужно взять фрагмент строки с указанием начальных (включенных) и конечных (исключенных) символов. Я попробовал это
let slice = &text[start..end];
и получил следующую ошибку
thread 'main' panicked at 'byte index 7 is not a char boundary; it is inside 'п' (bytes 6..8) of 'Hello привет''
Я предполагаю, что это происходит, поскольку кириллические буквы являются многобайтовыми, а нотация [..]
принимает символы, использующие байт-индексы. Что я могу использовать, если я хочу срезать с использованием символьных индексов, например, я делаю в Python:
slice = text[start:end]
?
Я знаю, что могу использовать итератор chars()
и вручную пройти через нужную подстроку, но есть ли более сжатый способ?