如何在 Rust 中对字符串的字符进行排序?

use*_*302 1 sorting string 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);
}
Run Code Online (Sandbox Code Playgroud)

这仅适用wordy&str,但我有一个String. 如何将 转换String为 的向量,char以便对字符串进行排序?

use*_*302 7

我这样做并获得了所需的输出。然而,这可能不是最好的方法。

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);
}
Run Code Online (Sandbox Code Playgroud)

  • 我通过复制您的代码并运行它来得到错误。由于您没有包含整个有效示例,因此它出现错误。如果您**不提供代码,其他人如何查看答案知道使用什么**? (3认同)
  • 请注意,您可以使用“chars.into_iter().collect::&lt;String&gt;()”而不是“String::from_iter”(来自“FromIterator”)。 (2认同)