string - 如何在 Rust 中遍历字符串中的字符以匹配单词?

标签 string iteration rust

我想遍历一个句子以从字符串中提取简单的单词。这是我目前所做的,试图让 parse 函数首先匹配输入字符串中的 world:

fn parse(input: String) -> String {
    let mut val = String::new();

    for c in input.chars() {
        if c == "w".to_string() {
            // guessing I have to test one character at a time
            val.push_str(c.to_str());
        }
    }

    return val;
}

fn main() {
    let s = "Hello world!".to_string();
    println!("{}", parse(s)); // should say "world"
}

遍历字符串中的字符以匹配 Rust 中的模式(例如对于基本解析器)的正确方法是什么?

最佳答案

使用 str::contains 可以轻松检查字符串中的单词方法。

至于自己编写解析器,我认为 Rust 与其他语言没有什么不同。您必须创建某种状态机。

例如,您可以查看 serialize::json .我还写了一个CSV parser它使用带有方便的 read_char 方法的缓冲区。使用这种方法的优点是您不需要一次将整个输入加载到内存中。

关于string - 如何在 Rust 中遍历字符串中的字符以匹配单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22738013/

相关文章:

javascript - 重申div jquery中的类中的类

tcp - TcpStream 上的 BufReader::lines() 停止迭代

java - 从字符串数组中删除正则表达式

java - 如何将数组中的字符串更改为整数

jquery .each 迭代

python - 向前过滤第 1 列而不进行迭代

Rust htons 和 ntohs

generics - rust:巨大的通用构造函数,嵌套特征

python - 如何在Python中转换HH :MM:SS to time. time()对象

Java 将字符串添加到字符串数组