[英]How can I sort the characters of a string in Rust?
我有字符串“laxmi”,我需要按字母降序对它进行排序,生成“xmlia”。 我写过这个:
fn main() {
let wordy: String = "I am a hello world example";
let chars: Vec<char> = wordy.chars().vector();
chars.sort_by(|a, b| b.cmp(a));
// let s: String = chars.into_iter().collect();
println!("test{:?}", chars);
let s = String::from_iter(chars);
println!("{}", s);
}
这只适用于wordy
是&str
,但我有一个String
。 如何将String
转换为char
向量,以便对字符串进行排序?
我这样做并获得了所需的输出。 然而,这可能不是最好的方法。
use std::iter::Iterator;
use std::iter::FromIterator;
fn main() {
let wordy: String = "I am a hello world example".to_owned();
let s_slice: &str = &wordy[..];
let mut chars: Vec<char> = s_slice.chars().collect();
chars.sort_by(|a, b| b.cmp(a));
println!("test{:?}", chars);
let s = String::from_iter(chars);
println!("{}", s);
}
如果你可以使用 crate,你可以使用itertools
crate 来简化一些事情。
将板条箱添加到您的Cargo.toml
:
[dependencies]
itertools = "0.9.0"
然后在您的文件中使用它来对字符串进行排序和反转。
use itertools::Itertools;
fn main() {
let wordy = "I am a hello world example";
let s = wordy.chars().sorted().rev().collect::<String>();
println!("{}", s);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.