Я пытаюсь создать систему автозамены, и когда пользователь вводит слово с большой буквы, автозамена не работает. Чтобы это исправить, я сделал копию напечатанной строки, применил .lowercaseString, а затем сравнил их. Если строка действительно опечатка, это должно исправить слово. Однако тогда слово, которое заменяет набранное слово, все в нижнем регистре. Поэтому мне нужно применять .uppercaseString только к первой букве. Я изначально думал, что смогу использовать
nameOfString[0]
но это, видимо, не работает. Как я могу получить первую букву строки в верхнем регистре, а затем иметь возможность напечатать всю строку с первой заглавной буквой?
Спасибо за любую помощь!
источник
.capitalizedString
больше не работает в Xcode 7 Beta 4. Строки немного изменились в Swift 2.0.Foundation
робкий оскал.uppercaseString
для этого.capitalized
настоящее время. Обратите внимание такжеcapitalizedStringWith(_ locale:)
Swift 5.1 или позже
Swift 5
источник
UITextField
наблюдателем дляUITextFieldTextDidChangeNotification
.для "Hello World"
или для "HELLO WORLD"
источник
Swift 4.0
или
Однако это заглавная буква каждого слова
Документация Apple:
источник
Для Swift 5:
источник
isEmpty
и инициализировать строку, чтобы заменить либо. Вы можете просто развернуть первый символ, а в случае неудачи просто вернуть ноль. Это можно упростить какvar firstCharacterUpperCase: String? { guard let first = first else { return nil } return lowercased().replacingCharacters(in: startIndex...startIndex, with: first.uppercased()) }
Для использования первого символа в слове
.capitalized
в быстром и для целого слова.uppercased()
источник
Swift 2.0 (одна строка):
источник
.localizedLowercaseString
конце я добавил, чтобы он работал со строками вроде: aNYsTring.String(nameOfString.characters.prefix(1)).uppercaseString + String(nameOfString.characters.dropFirst()).localizedLowercaseString
Swift 3 (код 8.3.3)
Прописные буквы всех первых символов строки
Прописные буквы всех символов
Прописные только первый символ строки
источник
Свифт 5
https://www.hackingwithswift.com/example-code/strings/how-to-capitalize-the-first-letter-of-a-string
использовать с вашей строкой
источник
Я получаю первого персонажа, дублированного решением Кирстейна. Это будет использовать первый символ, не видя двойного:
Я не знаю, является ли это более или менее эффективным, я просто знаю, что это дает мне желаемый результат.
источник
countElements
это простоcount
.С Swift 3 вы можете легко использовать
textField.autocapitalizationType = UITextAutocapitalizationType.sentences
источник
Вот версия для Swift 5, которая использует API скалярных свойств Unicode для спасения, если первая буква уже в верхнем регистре или не имеет понятия регистра:
источник
return first.uppercased() + dropFirst()
или один лайнер(first?.uppercased() ?? "") + dropFirst()
Прописать первый символ в строке
источник
В Swift 3.0 (это немного быстрее и безопаснее, чем принятый ответ):
nameOfString.capitalized не будет работать , оно будет использовать заглавные буквы в предложении
источник
Кредиты Леонардо Савио Дабуса:
Я полагаю, что большинство случаев использования заключается в получении надлежащего корпуса:
источник
Мое решение:
источник
Включая приведенные выше ответы, я написал небольшое расширение, в котором первая буква каждого слова пишется с заглавной буквы (потому что это то, что я искал, и подумал, что кто-то другой может его использовать).
Я смиренно представляю:
источник
Swift 4
источник
Вот как я это делал маленькими шагами, он похож на @Kirsteins.
источник
Также работает просто передать вашу строку и получить заглавную обратно.
источник
Swift 3 Обновление
replaceRange
FUNC сейчасreplaceSubrange
источник
Я неравнодушен к этой версии, которая является очищенной версией из другого ответа:
Он стремится быть более эффективным, оценивая self.characters только один раз, а затем использует согласованные формы для создания подстрок.
источник
Swift 4 (Xcode 9.1)
источник
capitalized
именно для этой целиЕсли вы хотите использовать заглавные буквы в каждом слове строки, вы можете использовать это расширение
Swift 4 Xcode 9.2
Используемый
источник
.capitalized
Если ваша строка написана заглавными буквами, то метод ниже будет работать
Это расширение поможет вам
источник
.capitalized
.capitalized
вернется (Это мальчик), и этот метод вернется (Это мальчик) Оба они разные. (Пожалуйста, проголосуйте + ve или удалите негатив)return first.uppercased() + dropFirst()
или один возврат лайнера(first?.uppercased() ?? "") + dropFirst()
Добавьте эту строку в метод viewDidLoad ().
источник
источник
Для Swift 5 вы можете просто сделать так:
Образец: "abc" -> "Abc"
источник