如何在 Rust 中获取字符串的字符数而非字节数?
```html
大家好!我刚开始学习 Rust,遇到了一个意想不到的问题。我需要获取字符串的字符(char)长度,而不是字节长度。在其他语言中,比如 Python 或 Java,len() 方法通常返回字符数。但在 Rust 中却不同。
下面这个例子让我很困惑:
```rust
fn main() {
let text = String::from("Привет, мир!");
println!("Длина строки: {}", text.len());
}
```
我期望看到 12(字符串 "Привет, мир!" 的字符数),但得到了 20。后来我明白 .len() 方法计算的是字节数。在 UTF-8 中,西里尔字符占用 2 个字节,所以结果不同。
但我需要的是字符数——用于用户界面、输入长度验证或单词计数。请问 Rust 中是否有返回字符数而非字节数的方法?还是需要自己实现?感谢提供代码示例。
重要提示:字符串可能不仅包含 ASCII,还可能包含 emoji、西里尔字母等。
```