鉴于串s
后的字符串下一个字符边界指标,这是该指数i
的好
字符开始的地方:查找字符
let s = "abc 好 def";
let i = 4;
那是什么字后获得该指数的最佳途径,使我可以切分字符串并获得abc 好
?在代码:
let end = find_end(s, i);
assert_eq!("abc 好", &s[0..end]);
(注意,+ 1
不起作用,因为它假定字符是只有一个字节长。)
目前,我有以下几点:
fn find_end(s: &str, i: usize) -> usize {
i + s[i..].chars().next().unwrap().len_utf8()
}
但我想知道我是否错过了一些东西,还有更好的方法吗?
感谢您的回答!我没有在这个问题中加入它,但我在某个时候也有'is_char_boundary'。有了'char_indices',如果你停在一个字符并想获得下一个索引,你可以使用'i + c.len_utf8()',这也是一个好主意! – robinst