Как проще всего преобразовать строку в верхний регистр в 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, который имеет значительные различия в синтаксисе и поэтому не подходит.
1 ответ(ов)
Если вы используете тип 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()
.
Как конкатенировать строки?
Почему сравнение строк с помощью '==' и 'is' иногда дает разные результаты?
Как проверить, содержит ли строка подстроку?
Функции startsWith() и endsWith() в PHP
Вывод строки в текстовый файл