我有一个像“aaaabbbccccc”这样的字符串。我想在字符串的chars迭代器上创建一个适配器,以生成相同字符的计数。输出(count)需要是连续相同字符的数量。例如:
let s = "aaaabbbccccc"
for count in s.chars().MAGIC() {
println!("{}", count)
}
// prints: 4, 3, 5
Run Code Online (Sandbox Code Playgroud)
更新:这几乎有效:过去不考虑字母:
let s = "aaaabbbcccccdd".to_string();
let mut tt = (s.chars().nth(0).unwrap(), 0);
for a in s.chars().filter_map(|x| {
if x != tt.0 {
tt.0 = x;
let tt_temp = tt.1;
tt.1 = 1;
Some(tt_temp)
} else {
tt.1 += 1;
None
}
}) {
println!("{:?}", a);
}
Run Code Online (Sandbox Code Playgroud)