Какой самый простой способ преобразовать строку в верхний регистр в 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());
}
Другие вопросы по тегам