从字符串和yield向量中过滤所有非整数

时间:2015-07-19 02:25:58

标签: rust

我有一个名为Into<String>的{​​{1}}变量。我正在尝试从字符串中过滤掉所有非整数,并返回包含字符串中所有整数向量的t_num。这是我的尝试:

Vec<usize>

问题是我收到了错误

     let filter_vec = t_num.into().chars().
         filter(|a| a.parse::<usize>()).                                                                                      
         collect::<Vec<_>>();

所以问题是char没有实现error: no method named `parse` found for type `&char` in the current scope filter(|a| a.parse::<usize>()). ,是否有类似于为parse实现的parse的方法?

1 个答案:

答案 0 :(得分:6)

charto_digit方法,可将字符转换为相应的数字。

fn parse_digits<A: Into<String>>(t_num: A) -> Vec<u32> {
    t_num.into().chars().
        filter_map(|a| a.to_digit(10)).
        collect::<Vec<_>>()
}

fn main() {
    println!("{:?}", parse_digits("123asd456")); // prints [1, 2, 3, 4, 5, 6]
}