string - ¿Cuál es la forma más sencilla de convertir una cadena a mayúsculas en Rust?
rust-0.9 (2)
He estado investigando cómo convertir una cadena a mayúsculas en Rust. La forma más óptima que he descubierto hasta ahora es esta:
let s = "smash";
let asc = s.to_ascii().to_upper();
println!("Hulk {:s}", asc.as_str_ascii());
¿Hay una forma menos verbosa de hacerlo?
Nota: Esta pregunta está dirigida específicamente a Rust 0.9. Hubo otra respuesta relacionada disponible en el momento de la pregunta, pero fue para Rust 0.8 que tiene diferencias significativas de sintaxis y por lo tanto no es aplicable.
Creo que la forma recomendada es usar 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());
}
Si usa el tipo std::string::String
lugar de &str
, hay una forma menos detallada con el beneficio adicional de la compatibilidad con 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};
}