很多语言中,字符串的长度就是你所看见的那么长,因为一个字符串就相当于很多个Char
类型的集合,
// js
"abc".length //=> 3
"123".length //=> 3
"你好吗".length //=> 3
而在Rust
中,字符是按照UTF-8
编码的大小来存的
// rust
"abc".length //=> 3
"123".length //=> 3
"你好吗".length //=> 9
英文字符、数字在UTF-8
编码中占1
个字节所以长度就是那么多,而中文每个字符占3
个字节,所以长度为9
如何获取正确的长度呢
本书这一节有个方法可以间接的获取
fn main() {
// 先将String转化为一个Chars类型
let c = "नमस्ते".chars();
// 使用chars的方法count获取字符串长度
println!("{}", c.count());
}
还有一个bytes
方法,返回的每个字节的值的集合。
网友评论