Avatar ·

如何在 Rust 中按字符(Unicode 字符)迭代字符串?

大家好!我刚开始学习 Rust,遇到了字符串迭代的问题。在其他语言(如 Python 或 C++)中,我习惯将字符串视为字符数组,可以通过索引或 for 循环遍历。 但在 Rust 中情况更复杂。以下是我尝试过的代码: ```rust let s = "Привет, мир!"; for c in s { println!("{}", c); } ``` 编译器报错:`error[E0277]: the trait bound \`str: Iterator\` is not satisfied`。我知道 `str` 不是迭代器,但如何获取每个字符呢? 我还尝试过通过索引访问: ```rust let s = "Привет"; println!("{}", s[0]); // 错误! ``` 又报错了:Rust 中的字符串不能直接索引,因为 Unicode 字符可能占用不同数量的字节。 最终我需要:获取一个字符串,遍历每个字符(包括西里尔字母、emoji 和特殊字符),并对每个字符执行操作。例如,计算字符数量或将所有元音替换为 '*'。