當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust str.char_indices用法及代碼示例


本文簡要介紹rust語言中 str.char_indices 的用法。

用法

pub fn char_indices(&self) -> CharIndices<'_>

返回字符串切片的 char 及其位置的迭代器。

由於字符串切片由有效的 UTF-8 組成,我們可以通過 char 遍曆字符串切片。此方法返回這兩個 char 的迭代器,以及它們的字節位置。

迭代器產生元組。位置第一, char 第二。

例子

基本用法:

let word = "goodbye";

let count = word.char_indices().count();
assert_eq!(7, count);

let mut char_indices = word.char_indices();

assert_eq!(Some((0, 'g')), char_indices.next());
assert_eq!(Some((1, 'o')), char_indices.next());
assert_eq!(Some((2, 'o')), char_indices.next());
assert_eq!(Some((3, 'd')), char_indices.next());
assert_eq!(Some((4, 'b')), char_indices.next());
assert_eq!(Some((5, 'y')), char_indices.next());
assert_eq!(Some((6, 'e')), char_indices.next());

assert_eq!(None, char_indices.next());

請記住, char 可能與您對字符的直覺不符:

let yes = "y̆es";

let mut char_indices = yes.char_indices();

assert_eq!(Some((0, 'y')), char_indices.next()); // not (0, 'y̆')
assert_eq!(Some((1, '\u{0306}')), char_indices.next());

// note the 3 here - the last character took up two bytes
assert_eq!(Some((3, 'e')), char_indices.next());
assert_eq!(Some((4, 's')), char_indices.next());

assert_eq!(None, char_indices.next());

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 str.char_indices。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。