我有一个Into<String>名为的变量t_num.我试图从字符串中过滤掉所有非整数,并返回一个Vec<usize>包含字符串中所有整数的向量.这是我的尝试:
let filter_vec = t_num.into().chars().
filter(|a| a.parse::<usize>()).
collect::<Vec<_>>();
Run Code Online (Sandbox Code Playgroud)
问题是我得到了错误
error: no method named `parse` found for type `&char` in the current scope
filter(|a| a.parse::<usize>()).
Run Code Online (Sandbox Code Playgroud)
所以问题是char没有实现parse,是否有类似于parse实现的方法char?
char有一个to_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]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
975 次 |
| 最近记录: |