Skip to main content

String

String 类型在 Rust 中提供了许多方法,用于操作和管理字符串。以下是一些常用的方法:

创建和初始化

  • new(): 创建一个新的空 String
  • from(): 从 &str 创建一个 String
  • to_string(): 将 &str 转换为 String

修改

  • push(char): 向 String 末尾添加一个字符。
  • push_str(&str): 向 String 末尾添加一个字符串切片。
  • insert(index, char): 在指定位置插入一个字符。
  • insert_str(index, &str): 在指定位置插入一个字符串切片。
  • pop(): 移除并返回 String 末尾的字符。
  • remove(index): 移除并返回指定位置的字符。
  • clear(): 清空字符串内容。

查询

  • len(): 返回字符串的字节长度。
  • is_empty(): 检查字符串是否为空。
  • contains(&str): 检查字符串是否包含指定的子串。
  • starts_with(&str): 检查字符串是否以指定子串开头。
  • ends_with(&str): 检查字符串是否以指定子串结尾。

转换

  • as_str(): 返回字符串的切片 &str
  • into_bytes(): 将 String 转换为字节向量 Vec<u8>
  • split_whitespace(): 按空白字符分割字符串,返回一个迭代器。

迭代

  • chars(): 返回一个字符迭代器。
  • bytes(): 返回一个字节迭代器。
  • lines(): 按行分割字符串,返回一个迭代器。

这些方法使得 String 类型在 Rust 中非常灵活,适合各种字符串操作需求。

example

当然,这里有一些示例代码,展示了 String 类型的常用方法及其输出:

fn main() {
// 创建和初始化
let mut s = String::new();
s.push_str("Hello");
println!("After push_str: {}", s); // 输出: Hello

let s2 = String::from("World");
println!("From &str: {}", s2); // 输出: World

// 修改
s.push(' ');
s.push_str(&s2);
println!("After push and push_str: {}", s); // 输出: Hello World

s.insert(5, ',');
println!("After insert: {}", s); // 输出: Hello, World

s.insert_str(6, " Beautiful");
println!("After insert_str: {}", s); // 输出: Hello, Beautiful World

s.pop();
println!("After pop: {}", s); // 输出: Hello, Beautiful Worl

s.remove(5);
println!("After remove: {}", s); // 输出: Hello Beautiful Worl

// 查询
println!("Length: {}", s.len()); // 输出: 21
println!("Is empty: {}", s.is_empty()); // 输出: false
println!("Contains 'Beautiful': {}", s.contains("Beautiful")); // 输出: true
println!("Starts with 'Hello': {}", s.starts_with("Hello")); // 输出: true
println!("Ends with 'World': {}", s.ends_with("World")); // 输出: false

// 转换
let s_slice = s.as_str();
println!("As str: {}", s_slice); // 输出: Hello Beautiful Worl

let bytes = s.into_bytes();
println!("Into bytes: {:?}", bytes); // 输出: [72, 101, 108, 108, 111, 32, 66, 101, 97, 117, 116, 105, 102, 117, 108, 32, 87, 111, 114, 108]

// 迭代
let s3 = String::from("Hello World");
for c in s3.chars() {
print!("{} ", c);
}
println!(); // 输出: H e l l o W o r l d

for b in s3.bytes() {
print!("{} ", b);
}
println!(); // 输出: 72 101 108 108 111 32 87 111 114 108 100
}

这些示例展示了如何使用 String 的各种方法来创建、修改、查询和迭代字符串。