获取 Rust 字符串中第 n 个字符的值

4 string rust

如何获取字符串中第n 个字符的值?例如,如果我有字符串“Hello, world!”,我将如何获取第一个字符的值?

Cha*_*man 10

很简单s.chars().nth(n)

\n

但是,请注意,就像文档中所说的那样:

\n
\n

重要的是要记住这一点char表示 Unicode 标量值,并且可能与您对 \xe2\x80\x98character\xe2\x80\x99 的想法不符。对字素簇的迭代可能是您真正想要的。Rust\xe2\x80\x99s 标准库未提供此功能,请查看 crates.io。

\n
\n

请参阅如何在 Rust 中迭代 Unicode 字素簇?

\n

具体来说,对于第一个字符,您可以使用s.chars().next().

\n

如果您的字符串仅是 ASCII,则可以使用as_bytes(): s.as_bytes()[n]。但我不建议这样做,因为这不是面向未来的(尽管这更快,O(1) vs O(n))。

\n