Метод split_off
Метод split_off разделяет строку String
на две части по указанному индексу. Исходная строка
сохраняет свою левую часть (от начала до позиции),
а правая часть (от позиции до конца) возвращается
как новый объект String. Параметром метод
принимает индекс, по которому нужно выполнить
разделение. Индекс указывается в байтах и должен
находиться на границе символа UTF-8, иначе программа
завершится с паникой.
Синтаксис
string.split_off(at)
Пример
Давайте разделим строку "abcde" по индексу 2
и выведем обе части:
fn main()
{
let mut s = String::from("abcde");
let tail = s.split_off(2);
println!("s: {}", s);
println!("tail: {}", tail);
}
Результат выполнения кода:
s: ab
tail: cde
Пример
Давайте разделим строку "12345" по индексу 0.
В этом случае исходная строка станет пустой, а возвращённая
получит всё содержимое:
fn main()
{
let mut s = String::from("12345");
let tail = s.split_off(0);
println!("s: {:?}", s);
println!("tail: {}", tail);
}
Результат выполнения кода:
s: ""
tail: 12345
Пример
Давайте разделим строку "abcde" по индексу,
равному длине строки. В этом случае исходная строка
останется неизменной, а возвращённая будет пустой:
fn main()
{
let mut s = String::from("abcde");
let tail = s.split_off(5);
println!("s: {}", s);
println!("tail: {:?}", tail);
}
Результат выполнения кода:
s: abcde
tail: ""
Смотрите также
-
класс
String,
который представляет собой изменяемую строку -
метод
truncate,
который обрезает строку до указанной длины -
метод
drain,
который удаляет диапазон символов из строки -
метод
replace_range,
который заменяет диапазон символов в строке