Rust - как в векторе удалить пустые элементы?

Рейтинг: 0Ответов: 2Опубликовано: 03.04.2023

Есть вектор, который собирается из строки через разбивку:

let mut _strings: Vec<&str> = _string_from_char.split(",").collect();

Получается пример:

["", "2323232", "322232", "3dsfsd"]

Как удалить пустые значения в векторе? Понятно, что логически их туда не добавлять. Но если уже по факту они есть.

Ответы

▲ 1Принят
let _strings: Vec<_> = _string_from_char.split(",").filter(|v| !v.is_empty()).collect();

Метод split возвращает итератор, что подсказывает, что обрабатывать строки можно тоже поточно, не складывая ссылки во временный вектор, что требует выделения памяти.

▲ 0

Нашел решение :

 _strings.retain(|value| *value != "");