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