KiberCuber
@KiberCuber

Как посчитать количество определенных символов в строке на Rust?

К примеру, у меня есть строка из 0 и 1, как мне можно узнать, сколько в ней есть 1? Хотел разбить строку на итераторы, но реализации итератора для строк нет, может есть какой-то count() принимающий аргумент вроде замыкания? Изучаю язык недавно, еще не полностью со стандартной библиотекой знаком, ну или плохо искал.
  • Вопрос задан
  • 953 просмотра
Решения вопроса 1
ozkriff
@ozkriff
Rust э̶н̶т̶у̶з̶и̶а̶с̶т сектант, хобби игродел
В постановке задачи есть важный нюанс: что считать символом?

Если считать обычный встроенный char, то просто получаем .chars() итератор из строки, фильтруем и считаем:
"12121".chars().filter(|&c| c == '2').count()

Но надо понимать, что на строках с графемными кластерами (а именно их обычные пользователи обычно считают символами) такой код будет криво работать. Если это нам важно, то идем за lib.rs/unicode_segmentation и пользуемся его graphemes методом:
"éaébé".graphemes(true).filter(|&g| g == "é").count()


Песочница.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы