Rust 标准库 API 字符串 String &str
Rust 大约 3008 字创建 String
from
let s = String::from("abc");
new
let mut s = String::new();
s.push_str("aaa");
with_capacity
let mut with_capacity: String = String::with_capacity(10);
with_capacity.push_str("aaa");
String 转为 &str
let as_str: &str = String::from("123").as_str();
let as_mut_str: &mut str = String::from("123").as_mut_str();
&str 转为 String
let ref_str_to_string: String = "123".to_string();
is_empty 判断是否为空
let result: bool = String::from("xyz").is_empty();
let result: bool = "xyz".is_empty();
is_ascii 判断是否是 ASCII 码
let result: bool = String::from("xyz 1").is_ascii();
let result: bool = "xyz我".is_ascii();
parse 解析为其他类型
parse()
需在变量上指定。(let result: i32
)
parse::<i32>()
显式指定转换类型。
let result: i32 = String::from("123").parse().unwrap();
let result = String::from("123").parse::<i32>().unwrap();
let result = "1.2".parse::<f32>().unwrap();
len 获取长度
let len: usize = String::from("abc").len();
let len: usize = "123".len();
contains 判断是否包含字符串切片或字符
&str
类型和char
字符类型都可以。
let result: bool = String::from("aadaa").contains("da");
let result: bool = String::from("aadaa").contains('a');
starts_with/ends_with 判断开始/结尾
&str
类型和char
字符类型都可以。
let result: bool = String::from("xyz").starts_with("x");
let result: bool = String::from("xyz").starts_with('x');
let result: bool = String::from("xyz").ends_with("z");
let result: bool = "xyz".ends_with('z');
trim 裁剪
trim
let trim: &str = String::from(" abc ").trim();
let trim: &str = " abc ".trim();
trim_start
let trim: &str = " abc ".trim_start();
trim_end
let trim: &str = " abc ".trim_end();
trim_match
trim_matches
中不能传&str
类型。
let trim: &str = "abc".trim_matches('a');
let string: String = String::from("abc ");
let trim: &str = string.trim_matches(char::is_numeric);
to_uppercase 转为大写
let to_uppercase: String = String::from("abc").to_uppercase();
let to_uppercase: String = "abc".to_uppercase();
to_lowercase 转为小写
let to_lowercase: String = String::from("ABC").to_lowercase();
let to_lowercase: String = "ABC".to_lowercase();
replace 替换
replace(pat, to) 全部替换
let replace: String = String::from("qazwsx").replace("qaz", "zaq");
let replace: String = "qazwsx".replace("qaz", "zaq");
replacen(pat, to, count) 替换指定个数
let replace: String = String::from("qazwsx").replacen("wsx", "xsw", 1);
let replace: String = "qazwsx".replacen("wsx", "xsw", 1);
repeat 重复字符
let repeat = String::from("qazwsx").repeat(3);
let repeat = "qazwsx".repeat(3);
split 分割字符串
split
let string = String::from("abc");
let split: Vec<&str> = string.split("").collect();
let split: Vec<&str> = "abc".split("").collect();
split_ascii_whitespace
按空白字符分割。
let string = String::from("a b c");
let split_ascii_whitespace: Vec<&str> = string.split_ascii_whitespace().collect();
split_once
只分割第一个匹配的。
let string = String::from("abc");
let split_once: (&str, &str) = string.split_once("").unwrap_or_default();
truncate 截断字符串
let mut string = String::from("qazwsx");
string.truncate(5);
阅读 518 · 发布于 2023-04-17
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Cookie 设置 HttpOnly 属性防篡改阅读 2537
-
MySQL 中文全文检索 ngram 处理停止词阅读 4379
-
skaffold init 提示 one or more valid Kubernetes manifests are required to run skaffold阅读 1068
-
Android 查看签名文件 jsk 的 SHA1,apk 签名验证阅读 5518
-
SonarQube Java 单元测试覆盖率为零解决方法阅读 1242
-
SpringMVC 请求体接收任意格式参数阅读 1090
-
Android ListView 隐藏分割线阅读 2569
-
Spring 与 JPA 中的 @Transactional 注解的区别阅读 615
-
Go 中的指数符号 e阅读 3074
-
Windows10 Hyper-V 安装 CentOS阅读 948