РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
294 of 1245 menu

Метод split

Метод split класса slice возвращает итератор, который разбивает срез на части по заданному разделителю. Разделителем может быть значение, для которого элемент среза удовлетворяет сравнению, или замыкание-предикат. Метод возвращает итератор Split, элементы которого имеют тип &[T].

Параметром метод принимает разделитель: это может быть ссылка на значение, с которым сравнивается каждый элемент среза, либо замыкание, принимающее ссылку на элемент и возвращающее bool.

Синтаксис

slice.split(&value) slice.split(|element| condition)

Пример

Давайте разобьем срез [1, 2, 3, 0, 4, 5] по разделителю 0 и выведем полученные части:

fn main() { let arr = [1, 2, 3, 0, 4, 5]; let res: Vec<&[i32]> = arr.split(&0).collect(); println!("{:?}", res); }

Результат выполнения кода:

[[1, 2, 3], [4, 5]]

Пример

Давайте разобьем срез ["a", "b", "c", "d", "e"] по разделителю "c":

fn main() { let arr = ["a", "b", "c", "d", "e"]; let res: Vec<&[&str]> = arr.split(&"c").collect(); println!("{:?}", res); }

Результат выполнения кода:

[["a", "b"], ["d", "e"]]

Пример

Давайте разобьем срез [1, 2, 3, 4, 5, 6] по предикату: элемент является четным числом:

fn main() { let arr = [1, 2, 3, 4, 5, 6]; let res: Vec<&[i32]> = arr.split(|x| x % 2 == 0).collect(); println!("{:?}", res); }

Результат выполнения кода:

[[1], [3], [5], []]

Смотрите также

  • метод split_at,
    который делит срез на две части по индексу
  • метод split_first,
    который отделяет первый элемент среза от остатка
  • метод rsplit,
    который разбивает срез справа налево
  • метод chunks,
    который разбивает срез на куски фиксированной длины
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить