0

Как проще всего преобразовать строку в верхний регистр в Rust?

924

Я пытаюсь выяснить, как преобразовать строку в верхний регистр в Rust. На данный момент я нашел следующий оптимальный способ:

let s = "smash";
let asc = s.to_ascii().to_upper();
println!("Hulk {:s}", asc.as_str_ascii());

Есть ли менее многословный способ сделать это?

Примечание: Этот вопрос касается конкретно Rust 0.9. На момент обращения был доступен другой связанный ответ, но он был для Rust 0.8, который имеет значительные различия в синтаксисе и поэтому не подходит.

1 ответ(ов)

0

Если вы используете тип std::string::String вместо &str, вы можете сделать это менее многословно и с дополнительным преимуществом поддержки Unicode:

fn main() {
    let test_str = "übercode"; // тип &str

    let uppercase_test_string = test_str.to_uppercase(); // тип String

    let uppercase_test_str = uppercase_test_string.as_str(); // возвращение к типу &str

    println!("{}", test_str);
    println!("{}", uppercase_test_string);
    println!("{}", uppercase_test_str);
}

Таким образом, вы сможете использовать метод to_uppercase() для преобразования строки в верхний регистр, и он вернет объект типа String, который поддерживает Unicode, что очень полезно для работы с многоязычными текстами. Если вам нужно снова получить срез строки, вы можете использовать метод as_str().

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь