我有一个 Into<String>
名为 t_num
的变量.我试图从字符串中过滤所有非整数并返回 Vec<usize>
包含字符串中所有整数的向量。这是我的尝试:
let filter_vec = t_num.into().chars().
filter(|a| a.parse::<usize>()).
collect::<Vec<_>>();
问题是我遇到了错误
error: no method named `parse` found for type `&char` in the current scope
filter(|a| a.parse::<usize>()).
所以问题是 char 没有实现 parse
,有没有类似于parse
的方法为 char
实现?
最佳答案
char
有一个 to_digit
方法,可以将字符转换为相应的数字。
fn parse_digits(t_num: &str) -> Vec<u32> {
t_num
.chars()
.filter_map(|a| a.to_digit(10))
.collect()
}
fn main() {
println!("{:?}", parse_digits("123asd456")); // prints [1, 2, 3, 4, 5, 6]
}
关于rust - 从字符串和 yield 向量中过滤所有非整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31497422/