rust-字符串
11.字符串
Rust 语言提供了两种字符串
- Rust 核心内置的数据类型
&str
,字符串字面量 。 - Rust 标准库中的一个 公开
pub
结构体。字符串对象String
。
字面量&str
字符串字面量的核心代码可以在模块 std::str
中找到。Rust 中的字符串字面量被称之为 字符串切片。因为它的底层实现是 切片。
1 | let lesson="Go语言微服务架构核心22讲"; |
字面量 &str
就是在 编译时 就知道其值的字符串类型,它也是字符的集合,被硬编码赋值给一个变量。
字符串字面量模式是 静态 的,所以,字符串字面量从创建时开始会一直保存到程序结束。
字符串对象
字符串对象并不是 Rust 核心内置的数据类型,它只是标准库中的一个 公开 pub
的结构体。
1 | pub struct String |
字符串对象是使用 UTF-8
作为底层数据编码格式,长度可变的集合。
字符串对象在 堆 heap
中分配,可以在运行时提供字符串值以及相应的操作方法。
新建字符串对象
1 | String::new() //创建一个新的空字符串,它是静态方法。 |
例子
1 | let s1 = String::new(); |
字符串对象常用方法
new()
创建一个新的字符串对象
push_str()方法
再字符串末尾追加字符串。
1 | let mut s3 = String::new(); |
push()方法
是在原字符上追加字符,而不是返回一个新的字符串
1 | s3.push('O'); |
replace()
指定字符串子串替换成另一个字符串
1 | let s4 = String::from("面向加薪学习"); |
len() 获取长度
返回字符串中的 总字节数。该方法会统计包括 制表符 \t
、空格 ``、回车 \r
、换行 \n
和回车换行 \r\n
等等。
1 | let s5 = String::from("面向加薪学习 www.go-edu.cn\n"); |
to_string()
将字符串转换为字符串对象,方便以后可以有更多的操作。
1 | let s6 = "从0到Go语言微服务架构师".to_string(); |
as_str()
返回一个字符串对象的 字符串 字面量。
1 | fn show_name(name:&str){ |
trim()
去除字符串头尾的空白符。空白符是指 制表符 \t
、空格 ``、回车 \r
、换行 \n
和回车换行 \r\n
等等。
1 | let s8 = " \tGo语言极简一本通\tGo语言微服务架构核心22讲 \r\n从0到Go语言微服务架构师\r\n "; |
split()
将字符串根据某些指定的 字符串子串 分割,返回分割后的字符串子串组成的切片上的迭代器。
1 | let s9 = "Go语言极简一本通、Go语言微服务架构核心22讲、从0到Go语言微服务架构师"; |
chars()
将一个字符串打散为所有字符组成的数组
1 | let s10 = "从0到Go语言微服务架构师"; |
字符串拼接 +
+ 的内部实现是重写了 add()
方法。
1 | add(self,&str)->String { |
返回新的字符串对象。
1 | let s11="Go语言极简一本通".to_string(); |
添加微信 | 公众号更多内容 |
---|---|
![]() |
![]() |
本博客所发布的内容,部分内容来源于网络,版权归原作者所有,如有侵权,请联系删除。转载请注明来自 面向加薪学习!