#string #slice #str #substr

无 std substring

字符串类型的子字符串方法

16 个稳定版本

使用旧 Rust 2015

1.4.5 2021 年 2 月 4 日
1.4.4 2021 年 1 月 31 日
1.4.0 2020 年 10 月 26 日

#300文本处理

Download history 23061/week @ 2024-04-20 23222/week @ 2024-04-27 21518/week @ 2024-05-04 22321/week @ 2024-05-11 34017/week @ 2024-05-18 21367/week @ 2024-05-25 21978/week @ 2024-06-01 28045/week @ 2024-06-08 20357/week @ 2024-06-15 24173/week @ 2024-06-22 23251/week @ 2024-06-29 26255/week @ 2024-07-06 22460/week @ 2024-07-13 23073/week @ 2024-07-20 24271/week @ 2024-07-27 26294/week @ 2024-08-03

100,807 每月下载量
不到 66 crate 中使用

MIT/Apache 许可协议

9KB
57

substring

GitHub Workflow Status codecov.io crates.io docs.rs MSRV License

字符串类型的子字符串方法。

这个 crate 为 Rust 字符串类型提供了一个 substring 方法。该方法接受一个起始和结束字符索引,并返回一个包含该范围内字符的字符串切片。

该方法通过在 str 基础类型上实现的 Substring trait 提供。

用法

要使用此 crate,只需将 Substring trait 带入作用域,并在您的字符串类型上调用 substring 方法。

use substring::Substring;

assert_eq!("hello, world!".substring(7, 12), "world");

请注意,子字符串的索引基于 Unicode 标量值。因此,子字符串可能不一定符合您的直觉

use substring::Substring;

assert_eq!("".substring(0, 1), "a");  // As opposed to "ã".
assert_eq!("".substring(1, 2), "\u{0303}")

上面的例子发生是因为 "ã" 事实上由两个 UTF-8 标量值组成:字母 "a" 和一个组合波浪号。

性能

由于 Rust 字符串是 UTF-8 编码的,查找字符子字符串的算法的时间复杂度为 O(n),其中 n 是字符串的字节长度。这是由于字符的长度不是可预测的。

最低支持的 Rust 版本

此 crate 保证在稳定版本的 rustc 1.0.0 及以上版本中编译。

许可协议

本项目可在以下任一许可协议下使用:

任选其一。

贡献

除非您明确说明,否则您提交的任何有意包含在此作品中的贡献,根据 Apache-2.0 许可协议定义,将按上述方式双许可,不附加任何额外条款或条件。

无运行时依赖