Метод is_char_boundary
Метод is_char_boundary проверяет, находится ли
указанный байтовый индекс на границе символа UTF-8
в строке. Метод возвращает true, если индекс
является границей символа, и false в противном
случае. Параметром метод принимает байтовый индекс,
который нужно проверить. Индекс 0 всегда является
границей символа, как и индекс, равный длине строки.
Синтаксис
str.is_char_boundary(index)
Пример
Давайте проверим, является ли индекс 0
границей символа в строке "abcde":
fn main()
{
let res = "abcde".is_char_boundary(0);
println!("{}", res);
}
Результат выполнения кода:
true
Пример
Давайте проверим, является ли индекс 5
границей символа в строке "abcde".
Длина строки равна 5, поэтому этот индекс
указывает на конец строки:
fn main()
{
let res = "abcde".is_char_boundary(5);
println!("{}", res);
}
Результат выполнения кода:
true
Пример
Давайте проверим, является ли индекс 6
границей символа в строке "abcde".
Этот индекс выходит за пределы строки:
fn main()
{
let res = "abcde".is_char_boundary(6);
println!("{}", res);
}
Результат выполнения кода:
false
Пример
Давайте проверим, является ли индекс 2
границей символа в строке "абвгд".
В этой строке каждый символ занимает по 2 байта,
поэтому индекс 2 указывает на начало второго символа:
fn main()
{
let res = "абвгд".is_char_boundary(2);
println!("{}", res);
}
Результат выполнения кода:
true
Пример
Давайте проверим, является ли индекс 1
границей символа в строке "абвгд".
Индекс 1 попадает внутрь первого двухбайтового
символа, поэтому границей он не является:
fn main()
{
let res = "абвгд".is_char_boundary(1);
println!("{}", res);
}
Результат выполнения кода:
false
Смотрите также
-
метод
get,
который возвращает срез строки по указанному диапазону индексов -
метод
len,
который возвращает длину строки в байтах -
метод
char_indices,
который возвращает итератор по байтовым индексам и символам строки -
метод
split_at,
который делит строку на две части по указанному индексу