Метод drain класса String
Метод drain удаляет из строки String
символы в указанном диапазоне и возвращает итератор,
который позволяет получить доступ к удалённым символам.
Параметром метод принимает диапазон индексов
(например, 2..5), который нужно удалить.
Если диапазон выходит за границы строки или не совпадает
с границами символов UTF-8, программа запаникует.
Синтаксис
string.drain(range)
Пример
Давайте удалим из строки "abcde" символы
с индексами от 1 до 3 и соберём удалённые символы
в новую строку:
fn main()
{
let mut s = String::from("abcde");
let drained: String = s.drain(1..3).collect();
println!("{}", s);
println!("{}", drained);
}
Результат выполнения кода:
"ade"
"bc"
Пример
Давайте удалим из строки "12345" символы
с индексами от 0 до 2 и выведем каждый удалённый
символ отдельно:
fn main()
{
let mut s = String::from("12345");
for c in s.drain(0..2) {
println!("{}", c);
}
println!("{}", s);
}
Результат выполнения кода:
'1'
'2'
"345"