Rustで文字列を大文字に変換する方法を調べてきました。私がこれまでに理解した最も最適な方法はこれです:
let s = "smash";
let asc = s.to_ascii().to_upper();
println!("Hulk {:s}", asc.as_str_ascii());
それを行うためのより冗長な方法はありますか?
注:この質問は特にRust 0.9を対象としています。質問時に別の関連する回答がありましたが、それはRust 0.8これは構文に大きな違いがあるため、適用されません。
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};
}
推奨される方法は 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());
}