Преобразование строки в верхний регистр

Swift:
Преобразование строки в верхний регистр

Как:

Swift делает капитализацию строк простой. Вот быстрый обзор:

let lowercasedString = "hello, world!"
let titleCased = lowercasedString.capitalized // "Hello, World!"
let uppercasedString = lowercasedString.uppercased() // "HELLO, WORLD!"

// Пример вывода:
print(titleCased)  // Выводит "Hello, World!"
print(uppercasedString)  // Выводит "HELLO, WORLD!"

Для большего контроля познакомимся с Locale:

let sentence = "the quick brown fox"
let titleCasedWithLocale = sentence.capitalized(with: Locale(identifier: "en_US"))
// "The Quick Brown Fox"

// Пример вывода:
print(titleCasedWithLocale)  // Выводит "The Quick Brown Fox"

Глубокое погружение

Капитализация в программировании существует столько же, сколько и обработка цифрового текста - это всё о соответствии ожиданиям пользователя. Хотя capitalized в Swift стандартизирует строки в Заглавный Регистр, где первый символ каждого слова прописной, есть нюансы.

Исторически, программистам нужны были собственные методы для капитализации, учитывая особые случаи самостоятельно. Capitalized в Swift учитывает локаль, что важно для собственных имён или правил регистра, специфичных для локали.

Говоря о альтернативах, те, кто не удовлетворён capitalized, часто обращаются к regex или пишут расширения к String для более сложных правил. С точки зрения реализации, capitalized по сути является встроенным методом, который проходит через строку, применяя прописные буквы к первому символу после символа, не являющегося буквой.

extension String {
    func customCapitalized() -> String {
        return self.lowercased().replacingOccurrences(of: "\\b\\w", with: { 
            guard let firstChar = $0.first else { return $0 }
            return String(firstChar).uppercased() + $0.dropFirst()
        }, options: .regularExpression)
    }
}

Вышеупомянутое расширение использует регулярное выражение для капитализации первой буквы каждого слова.

Смотрите также

Для более глубокого изучения манипуляций со строками в Swift, вот некоторые полезные ресурсы: