本文简要介绍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 str.chars用法及代码示例
- Rust str.contains用法及代码示例
- Rust str.make_ascii_uppercase用法及代码示例
- Rust str.strip_suffix用法及代码示例
- Rust str.trim_left用法及代码示例
- Rust str.to_ascii_lowercase用法及代码示例
- Rust str.trim用法及代码示例
- Rust str.split_terminator用法及代码示例
- Rust str.to_uppercase用法及代码示例
- Rust str.starts_with用法及代码示例
- Rust str.escape_default用法及代码示例
- Rust str.rmatches用法及代码示例
- Rust str.trim_right用法及代码示例
- Rust str.rsplit_terminator用法及代码示例
- Rust str.rsplit_once用法及代码示例
- Rust str.split_once用法及代码示例
- Rust str.len用法及代码示例
- Rust str.trim_left_matches用法及代码示例
- Rust str.rsplit用法及代码示例
- Rust str.eq_ignore_ascii_case用法及代码示例
- Rust str.rfind用法及代码示例
- Rust str.is_ascii用法及代码示例
- Rust str.find用法及代码示例
- Rust str.trim_right_matches用法及代码示例
- Rust str.strip_prefix用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 str.char_indices。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。