乐闻世界logo
搜索文章和话题

如何在 Rust 中使用字符串?

1 个月前提问
1 个月前修改
浏览次数18

1个答案

1

在Rust中使用字符串主要有两种类型:String和字符串切片&strString是一个可增长的、可变的、有所有权的UTF-8字符序列,而&str通常指的是字符串的一个不可变引用。

创建字符串

  1. 直接创建

    rust
    let mut s = String::new(); // 创建一个空的String let data = "initial contents"; let s = data.to_string(); // 从&str转换到String let s = "initial contents".to_string(); // 直接转换字面量 let s = String::from("initial contents"); // 使用String::from函数
  2. 通过格式化创建

    rust
    let s = format!("{} {}", "Hello", "world"); // 结果是 "Hello world"

修改字符串

String可以被修改,而&str则不能。

  1. 增加内容

    rust
    let mut s = String::from("foo"); s.push_str("bar"); // s现在是 "foobar" s.push('!'); // s现在是 "foobar!"
  2. 使用+运算符或format!宏拼接

    rust
    let mut s1 = String::from("Hello"); let s2 = " World"; s1 = s1 + s2; // 注意s1在此操作后被移动了 // 使用format!更加灵活 let s1 = String::from("Hello"); let s2 = " World"; let s3 = format!("{}{}", s1, s2); // s1和s2不会被移动
  3. 替换、删除与修改

    rust
    let mut s = String::from("Hello"); s.replace("Hello", "Goodbye"); // 替换 s.pop(); // 删除最后一个字符

索引和切片

Rust中的字符串索引处理比较严格,以防止在字符边界上出错。

  1. 字符串切片

    rust
    let s = String::from("hello"); let slice = &s[0..2]; // 切片,slice为"he"
  2. 遍历字符串

    rust
    for c in "नमस्ते".chars() { print!("{} ", c); } // 或者 for b in "नमस्ते".bytes() { print!("{} ", b); }

总的来说,在Rust中处理字符串时,需要考虑所有权、可变性以及UTF-8编码的规则,确保代码安全且高效。

2024年8月7日 15:23 回复

你的答案