我查看了Rust docs for String
,但找不到提取子字符串的方法.
有没有像JavaScript的Rust substr
这样的方法?如果没有,你将如何实施?
str.substr(start[, length])
最接近的可能是slice_unchecked
,但它使用字节偏移量而不是字符索引,并标记为unsafe
.
我查看了Rust docs for String
,但找不到提取子字符串的方法.
有没有像JavaScript的Rust substr
这样的方法?如果没有,你将如何实施?
str.substr(start[, length])
最接近的可能是slice_unchecked
,但它使用字节偏移量而不是字符索引,并标记为unsafe
.
对于字符,可以使用s.chars().skip(pos).take(len)
:
fn main() {
let s = "Hello, world!";
let ss: String = s.chars().skip(7).take(5).collect();
println!("{}", ss);
}
不过要注意Unicode字符的定义.
对于字节,可以使用切片语法:
fn main() {
let s = b"Hello, world!";
let ss = &s[7..12];
println!("{:?}", ss);
}