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, вот некоторые полезные ресурсы: