Avatar ·

如何在Rust中遍历字符串的字符?按索引遍历字符

大家好!我刚开始学习Rust,在处理字符串时遇到了问题。我需要遍历字符串的每个字符并对其执行某些操作。在其他语言(如Python或C++)中,我习惯在for循环中使用索引:`string[i]`。但在Rust中这行不通。 以下是我的代码,无法编译: ```rust fn main() { let text = String::from("Привет, мир!"); for i in 0..text.len() { println!("Символ: {}", text[i]); // 错误! } } ``` 编译器报错:`cannot index into a string of type String`。我明白Rust中的字符串不仅仅是字符数组,而是UTF-8编码的字节序列。但如何正确遍历所有字符呢? 我需要一个能正确处理Unicode(包括多字节字符,如西里尔字母、emoji)的解决方案。另外,如果能知道如何获取字符及其在字符串中的位置(索引)也会很有帮助。请告诉我如何正确且高效地实现?