Rust字符串
Rust语言在核心部分只有一种字符串类型,那就是字符串切片str
,它通常以借用的形式出现(&str)。
字符串切片是一些指向存储在别处的UTF-8编码字符串的引用。例如,字符串字面量的数据被存储在程序的二进制文件中,而它们本身也是字符串切片的一种。
String
类型
String
类型被定义在了rust标准库中而没有内置在语言核心部分,但是通常说的字符串,通常指的是String
和字符串切片&str
这两种。
创建字符串
- 使用
String::new()
创建空字符串
let mut s = String::new();
s.push_str("hello world");
println!("the s value of {}", s);
使用String::new
创建的是一个空字符串
- 使用
to_string
方法创建字符串字面量
let s = "hello world!".to_string();
println!("the s value of {}", s);
只要某些类型实现了Display trait的类型才能调用to_string()
方法,通过这样的形式创建的字符串,如同字符串字面量一样。
这里说明一下使用String::from()
跟使用to_string()
方法生成的字符串字面量是等价的。
更新字符串
String
的大小可以增减,其内容也可以修改。此外我们还可以通过使用+
运算符或者format!()
宏来拼接String
使用
push_str
方法来向字符串中添加内容push_str
接收的参数是一个字符串切片
let mut s = String::from("hello world");
s.push_str(", hello!");
println!("the s value of {}", s);
使用
push
方法push
接收的参数是单一的一个字符
let mut s = String::from("hello, ");
s.push('1');
println!("the s value of {}", s);
- 使用
+
运算符
let s1 = String::from("hello , ");
let s2 = String::from("world !");
let s3 = s1 + &2;
println!("the s3 value of {}", s3);
- 使用
format
宏
let s1 = String::from("str1 ");
let s2 = String::from("str2 ");
let s3 = String::from("str3 !");
let s = format!("{} - {} - {}", s1, s2, s3);
println!("the s value of {}", s);
that's all