当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。