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

标签 rust

我有一个 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/

相关文章:

rust - 实现 AsRef 的生命周期

optimization - Rust 会优化计算范围内的循环吗?

rust - 如何让 Racer 与 Atom 一起工作?

rust - 使用 Iron 在简单的 Web 服务器中调用两次的函数

c++ - AOT编译语言是如何实现匿名函数的?

rust - “associated type … must be specified”,但未使用

rust - 如何更改向量中元素的字段?

rust - 何时调用mut Vec的IntoIterator实现? [复制]

rust - 逐个元素比较 2 个向量或字符串的最佳方法是什么?

arrays - 查找数组中最大值索引的最快方法是什么?