1,切片,字符串
切片由双引号包围,不可变,类型为&str。
字符串是String实例,可变,类型为String。
2,创建String
创建空串。
fn main() {
let a: String = String::new();
println!("{}", a);
}
由切片转化。有两种方法。
fn main() {
let a: String = String::from("你好,世界!");
println!("{}", a);
let b: String = "你好,世界!".to_string();
println!("{}", b);
}
你好,世界!
你好,世界!
3,追加
追加字符:push()
追加切片:push_str()
fn main() {
let mut a: String = String::from("你好,世界!");
println!("{}", a);
a.push('1');
println!("{}", a);
a.push_str("234");
println!("{}", a);
}
你好,世界!
你好,世界!1
你好,世界!1234
4,合并多个String
利用format宏。
fn main() {
let s1 = String::from("A");
let s2 = String::from("B");
let s3 = String::from("C");
let s = format!("{}-{}-{}", s1, s2, s3);
println!("s:{}", s);
}
s:A-B-C
5,遍历
字符遍历:chars()
字节遍历:bytes()
fn main() {
let msg = "你好,世界!".to_string();
for b in msg.chars() {
print!("{}", b);
}
print!("\n===========\n");
for b in msg.bytes() {
print!("{},", b);
}
}
效果:
6,截取切片
特点:中文不支持截取。
截取首个字符。
左开右闭:取到左边,取不到右边。
fn main() {
let msg = "hello world".to_string();
let msg2 = &msg[0..1];
println!("{}", msg2);
}
h
可以取到右边的写法:
&msg[0..=1]
省略一边,表示头和结尾。
&msg[0..]
&msg[..=1]