Rust 字符串
1. 字符串 (Strings)
字符串用于存储文本。
您之前已经了解到,可以使用 &str 类型来创建一个字符串:
示例
let greeting: &str = "Hello";
println!("{}", greeting);请注意,字符串被双引号 ("Hello") 包围。
在 Rust 中,主要存在两种类型的字符串:
&str- 被称为“字符串切片 (string slices)”,用于固定文本,比如 "Hello"。String- 当您需要一个可以被更改的字符串时使用。
在本章中,您将主要学习如何使用 String 类型,因为它具有更高的灵活性并且能够随着时间的推移被修改。
2. 创建一个 String
您可以使用 to_string() 方法或 String::from() 函数,从一个字符串字面量创建一个 String 类型的变量:
示例
let text1 = "Hello World".to_string();示例
let text2 = String::from("Hello World");选择哪一种完全由您决定 —— to_string() 和 String::from() 在 Rust 编程中都非常常见。
3. 修改一个 String
String 类型的字符串是可变的 (mutable),因此如果您在使用 mut 关键字声明它们后,就可以对其进行修改。
使用 push_str() 向字符串中添加一段文本:
示例
let mut greeting = String::from("Hello");
greeting.push_str(" World");
println!("{}", greeting); // 输出: Hello World使用 push() 添加单个字符:
示例
let mut word = String::from("Hi");
word.push('!');
println!("{}", word); // 输出: Hi!4. 拼接字符串
您可以使用 format! 宏来组合拼接多个字符串:
示例
let s1 = String::from("Hello");
let s2 = String::from("World!");
let s3 = String::from("What a beautiful day!");
let result = format!("{} {} {}", s1, s2, s3);
println!("{}", result);您还可以使用 + 运算符来拼接字符串,但是当需要拼接的值非常多时,代码可能会变得非常混乱。
示例
let s1 = String::from("Hello");
let s2 = String::from("World!");
let s3 = String::from("What a beautiful day!");
let result = s1 + " " + &s2 + " " + &s3;
println!("{}", result);注意: 您只能使用 + 运算符将一个 &str 加到一个 String 上。这也是为什么在上例中使用了 &s2 和 &s3(它们被当作字符串切片使用)。
实用提示: 在组合拼接字符串时,使用 format! 通常是比使用 + 更好的选择。
5. 字符串长度
您可以使用 .len() 方法来获取一个字符串的长度:
示例
let name = String::from("John");
println!("Length: {}", name.len()); // 输出: 4