如何在 Rust 中删除字符串的第一个和最后一个字符?

问题描述 投票:0回答:5

我想知道如何删除 Rust 中字符串的第一个和最后一个字符。

示例:

输入:

"Hello World"

输出:

"ello Worl"

string rust
5个回答
53
投票

您可以使用

.chars()
迭代器并忽略第一个和最后一个字符:

fn rem_first_and_last(value: &str) -> &str {
    let mut chars = value.chars();
    chars.next();
    chars.next_back();
    chars.as_str()
}

对于零或一大小的字符串,它返回一个空字符串,并且它将正确处理多字节 unicode 字符。看到它在游乐场工作。


27
投票

...或者简单的解决方案
也适用于 Unicode 字符:

let mut s = "Hello World".to_string();
s.pop();      // remove last
if s.len() > 0 {
    s.remove(0);  // remove first
}

23
投票

我通过使用字符串切片来做到这一点。

fn main() {
    let string: &str = "Hello World";
    let first_last_off: &str = &string[1..string.len() - 1];
    println!("{}", first_last_off);
}

我取出了字符串中的所有字符,直到字符串末尾 - 1。


0
投票

您还可以使用 split_at()。

let msg = "Hello, world!";
let msg = msg.split_at(msg.len() - 1);
let msg = msg.0.split_at(1);
println!("{}", msg.1);

ello, world

split_at()
返回以下内容:
(&str, &str)


0
投票

我建议使用切片并转换为所需的类型:

let hi: String = String::from("Hello, World");
let stripped_string: String = hi[1..hi.len()-1].to_string();
let stripped_str: &str = &hi[1..hi.len()-1];
© www.soinside.com 2019 - 2024. All rights reserved.