Lan*_*ard 5 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"
}
Run Code Online (Sandbox Code Playgroud)
迭代字符串中的字符以匹配Rust中的模式(例如基本解析器)的正确方法是什么?
使用该方法可以轻松检查字符串中的单词str::contains
。
至于编写解析器本身,我认为 Rust 与其他语言没有什么不同。您必须创建某种状态机。
例如,您可以查看serialize::json
. 我还编写了一个CSV 解析器,它通过一种方便的方法使用缓冲区read_char
。使用这种方法的优点是您不需要立即将整个输入加载到内存中。
归档时间: |
|
查看次数: |
2529 次 |
最近记录: |