2017-03-11 17 views
-1

私は文字列 "laxmi"を持っており、アルファベット順にソートして "xmlia"を生成する必要があります。私はこれを書いている:Rustで文字列の文字を並べ替えるにはどうすればいいですか?

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を持っています。 Stringcharというベクトルに変換するには、文字列を並べ替えることができますか?

+0

これは有効なコードではないので、「this only works ...」と言うことができません。それは複数のエラーを生成します:*不一致型*; *型 'std :: str :: Chars <'_>'には 'vector'という名前のメソッドは見つかりませんでした。 * 'std :: string :: String'型で' from_iter'という名前の関連項目が見つかりませんでした。 Stack Overflowに関する質問をするときに[MCVE]を作成する方法を確認してください。 – Shepmaster

答えて

2

私はこれを行い、望ましい出力を得ました。しかし、これは最善の方法ではないかもしれません。

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); 
} 
+0

@Shepmaster私はこのエラーがどのようになったのか分かりません。しかし、私は間違いなく正しい出力を得ています。ヘッダー付きの全体的なプログラムが解答で編集されます。私はエラーなしでプログラムをコンパイルすることができます。あなたは、std :: iter :: FromIteratorの使用を見逃している可能性があります。ヘッダ。 – user5335302

+1

あなたのコードをコピーして実行するとエラーが発生しました。有効な例全体を含めなかったため、エラーが発生しました。 **あなたがコードを提供していない場合、どのような答えを見ている人は、どのようなものを使うべきか**を知っていますか? – Shepmaster

関連する問題