鑑於串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