簡體   English   中英

如何在 Rust 中對字符串的字符進行排序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM