我一直在研究如何在 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
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};
}
我认为推荐的方法是使用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());
}
在 Rust 1.2.0 中,str::to_uppercase()
添加了。
fn main() {
let s = "smash";
println!("Hulk {}", s.to_uppercase());
}