string rust rust-0.9

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}; }