Rust:filter - halmk/Library GitHub Wiki
イテレータのメソッドfilterは、bool値を返すクロージャを渡すとtrueとなった要素だけを走査するイテレータに変換する
- 文字列の中から特定の文字を抽出
fn main() {
let s = String::from("10101010");
for ch in s.chars().filter(|&c| c == '1') {
print!("{}", ch); // 1111
}
}- 回文になっていない文字数を数える (filterで要素とインデックスを扱う)
fn main(){
let s: Vec<char> = read::<String>().chars().collect();
println!("{:?}", s);
let n = s.len();
let count = s
.iter()
.enumerate()
.filter(|&(i, x)| i<n/2 && *x != s[n-i-1])
.count();
println!("{}", count);
}