Rust 简明教程

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