web-dev-qa-db-ja.com

Rustで文字列を大文字に変換する最も簡単な方法は何ですか?

Rustで文字列を大文字に変換する方法を調べてきました。私がこれまでに理解した最も最適な方法はこれです:

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

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

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

23
Greg Malcolm

std::string::Stringの代わりに&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};
}
24
Codetoffel

推奨される方法は 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());
}
12
Daniel Fath