Rust字符串

Rust语言在核心部分只有一种字符串类型,那就是字符串切片str,它通常以借用的形式出现(&str)。

字符串切片是一些指向存储在别处的UTF-8编码字符串的引用。例如,字符串字面量的数据被存储在程序的二进制文件中,而它们本身也是字符串切片的一种。

String类型

String类型被定义在了rust标准库中而没有内置在语言核心部分,但是通常说的字符串,通常指的是String和字符串切片&str这两种。

创建字符串
  1. 使用String::new()创建空字符串
let mut s = String::new();
s.push_str("hello world");
println!("the s value of {}", s);

使用String::new创建的是一个空字符串

  1. 使用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

  1. 使用push_str方法来向字符串中添加内容

    push_str接收的参数是一个字符串切片

let mut s = String::from("hello world");
s.push_str(", hello!");

println!("the s value of {}", s);
  1. 使用push方法

    push接收的参数是单一的一个字符

let mut s = String::from("hello, ");
s.push('1');
println!("the s value of {}", s);
  1. 使用+运算符
let s1 = String::from("hello , ");
let s2 = String::from("world !");

let s3 = s1 + &2;
println!("the s3 value of {}", s3);
  1. 使用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

results matching ""

    No results matching ""