我想知道如何删除 Rust 中字符串的第一个和最后一个字符。
示例:
输入:
"Hello World"
输出:
"ello Worl"
您可以使用
.chars()
迭代器并忽略第一个和最后一个字符:
fn rem_first_and_last(value: &str) -> &str {
let mut chars = value.chars();
chars.next();
chars.next_back();
chars.as_str()
}
对于零或一大小的字符串,它返回一个空字符串,并且它将正确处理多字节 unicode 字符。看到它在游乐场工作。
...或者简单的解决方案
也适用于 Unicode 字符:
let mut s = "Hello World".to_string();
s.pop(); // remove last
if s.len() > 0 {
s.remove(0); // remove first
}
我通过使用字符串切片来做到这一点。
fn main() {
let string: &str = "Hello World";
let first_last_off: &str = &string[1..string.len() - 1];
println!("{}", first_last_off);
}
我取出了字符串中的所有字符,直到字符串末尾 - 1。
您还可以使用 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)
。
我建议使用切片并转换为所需的类型:
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];