41

Rustで文字列を大文字に変換する方法を調べてきました。これまでに私が考え出した最も最適な方法は次のとおりです。

let s = "smash";
let asc = s.to_ascii().to_upper();
println!("Hulk {:s}", asc.as_str_ascii());

それを行うためのより冗長な方法はありますか?

注:この質問は、特に Rust 0.9 を対象としています。質問時に利用可能な別の関連する回答がありましたが、それはRust 0.8用であり、構文に大きな違いがあるため、適用できません。

4

3 に答える 3

46

std::string::Stringの代わりに typeを使用する場合&str、Unicode サポートの追加の利点を備えた、あまり冗長でない方法があります。

fn main() {
    let test_str = "übercode"; // type &str

    let uppercase_test_string = test_str.to_uppercase(); // type String

    let uppercase_test_str = uppercase_test_string.as_str(); // back to type &str

    println!{"{}", test_str};
    println!{"{}", uppercase_test_string};
    println!{"{}", uppercase_test_str};
}
于 2015-09-19T07:05:21.133 に答える
16

推奨される方法は次を使用することだと思いますString::to_ascii_uppercase

fn main() {
    let r = "smash".to_ascii_uppercase();
    println!("Hulk {}!", r); // Hulk SMASH!

    //or one liner
    println!("Hulk {}!", "smash".to_ascii_uppercase());
}
于 2014-02-13T10:17:04.863 に答える