Какой самый простой способ преобразовать строку в верхний регистр в 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, у которого есть существенные различия синтаксиса и поэтому не применимый.
3 ответа
Если вы используете 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());
}
В Rust 1.2.0, str::to_uppercase()
был добавлен.
fn main() {
let s = "smash";
println!("Hulk {}", s.to_uppercase());
}