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 的各种方法来创建、修改、查询和迭代字符串。