我想知道如何删除Rust中字符串的第一个和最后一个字符。示例:输入:"Hello World"输出量:"ello Worl"
"Hello World"
"ello Worl"
2wnc66cl1#
您可以使用.chars()迭代器并忽略第一个和最后一个字符:
.chars()
fn rem_first_and_last(value: &str) -> &str { let mut chars = value.chars(); chars.next(); chars.next_back(); chars.as_str() }
对于零或一个大小的字符串,它返回一个空字符串,并且它将正确处理多字节的unicode字符。
mjqavswn2#
......或微不足道的解决方案
let mut s = "Hello World".to_string(); s.pop(); // remove last if s.len() > 0 { s.remove(0); // remove first }
rqqzpn5f3#
我是通过使用字符串切片来实现的。
fn main() { let string: &str = "Hello World"; let first_last_off: &str = &string[1..string.len() - 1]; println!("{}", first_last_off); }
我把字符串中的所有字符取到字符串的末尾- 1。
lnvxswe24#
您也可以使用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) .
split_at()
(&str, &str)
4条答案
按热度按时间2wnc66cl1#
您可以使用
.chars()
迭代器并忽略第一个和最后一个字符:对于零或一个大小的字符串,它返回一个空字符串,并且它将正确处理多字节的unicode字符。
mjqavswn2#
......或微不足道的解决方案
rqqzpn5f3#
我是通过使用字符串切片来实现的。
我把字符串中的所有字符取到字符串的末尾- 1。
lnvxswe24#
您也可以使用split_at()。
split_at()
会传回下列值:(&str, &str)
.