16 个稳定版本
使用旧 Rust 2015
1.4.5 | 2021 年 2 月 4 日 |
---|---|
1.4.4 |
|
1.4.0 | 2020 年 10 月 26 日 |
#300 在 文本处理 中
100,807 每月下载量
在 不到 66 crate 中使用
9KB
57 行
substring
字符串类型的子字符串方法。
这个 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 License,版本 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确说明,否则您提交的任何有意包含在此作品中的贡献,根据 Apache-2.0 许可协议定义,将按上述方式双许可,不附加任何额外条款或条件。