Estou tentando criar um sistema de correção automática e, quando um usuário digita uma palavra com letra maiúscula, a correção automática não funciona. Para corrigir isso, fiz uma cópia da string digitada, apliquei .lowercaseString e as comparei. Se a string for realmente digitada incorretamente, deve corrigir a palavra. No entanto, a palavra que substitui a palavra digitada é minúscula. Portanto, preciso aplicar .uppercaseString apenas à primeira letra. Eu originalmente pensei que poderia usar
nameOfString[0]
mas isso aparentemente não funciona. Como posso colocar a primeira letra da string em maiúsculas e poder imprimir a string completa com a primeira letra maiúscula?
Obrigado por qualquer ajuda!
fonte
.capitalizedString
não funciona mais no Xcode 7 Beta 4. As strings mudaram um pouco no Swift 2.0.Foundation
sorriso tímido.uppercaseString
for that.capitalized
agora. Note tambémcapitalizedStringWith(_ locale:)
Swift 5.1 ou posterior
Swift 5
fonte
UITextField
observador paraUITextFieldTextDidChangeNotification
.para "Olá Mundo"
ou para "OLÁ MUNDO"
fonte
Swift 4.0
ou
No entanto, isso coloca em maiúscula a primeira letra de cada palavra
Documentação da Apple:
fonte
Para o Swift 5:
fonte
isEmpty
e inicializar uma string para substituir também. Você pode simplesmente desembrulhar o primeiro caractere e, caso falhe, retorne nulo. Isso pode ser simplificado comovar firstCharacterUpperCase: String? { guard let first = first else { return nil } return lowercased().replacingCharacters(in: startIndex...startIndex, with: first.uppercased()) }
Para o primeiro caractere no uso de palavras
.capitalized
em swift e para uso de palavras inteiras.uppercased()
fonte
Swift 2.0 (linha única):
fonte
.localizedLowercaseString
no final para fazê-lo funcionar com strings como: aNYsTring.String(nameOfString.characters.prefix(1)).uppercaseString + String(nameOfString.characters.dropFirst()).localizedLowercaseString
Swift 3 (xcode 8.3.3)
Maiúsculas todos os primeiros caracteres da string
Todos os caracteres em maiúsculas
Apenas o primeiro caractere da string em maiúsculas
fonte
No rápido 5
https://www.hackingwithswift.com/example-code/strings/how-to-capitalize-the-first-letter-of-a-string
use com sua corda
fonte
Estou duplicando o primeiro personagem com a solução de Kirsteins. Isso colocará em maiúscula o primeiro caractere, sem ver o dobro:
Não sei se é mais ou menos eficiente, só sei que isso me dá o resultado desejado.
fonte
countElements
é justocount
.No Swift 3 você pode usar facilmente
textField.autocapitalizationType = UITextAutocapitalizationType.sentences
fonte
Aqui está uma versão do Swift 5 que usa a API de propriedades escalares Unicode para resgatar se a primeira letra já estiver em maiúscula ou se não houver uma noção de caso:
fonte
return first.uppercased() + dropFirst()
ou um forro(first?.uppercased() ?? "") + dropFirst()
Coloque em maiúscula o primeiro caractere na sequência
fonte
No Swift 3.0 (isso é um pouco mais rápido e seguro do que a resposta aceita):
nameOfString.capitalized não funciona , coloca em maiúscula todas as palavras na frase
fonte
Créditos a Leonardo Savio Dabus:
Eu imagino que a maioria dos casos de uso é obter a embalagem adequada:
fonte
Minha solução:
fonte
Incorporando as respostas acima, escrevi uma pequena extensão que maiúscula a primeira letra de cada palavra (porque era isso que eu estava procurando e achei que alguém mais poderia usá-la).
Eu humildemente submeto:
fonte
Swift 4
fonte
Aqui está o que eu fiz em pequenos passos, é semelhante ao @Kirsteins.
fonte
Também funciona, basta passar sua string e obter uma maiúscula de volta.
fonte
Atualização Swift 3
A
replaceRange
função é agorareplaceSubrange
fonte
Sou parcial com esta versão, que é uma versão limpa de outra resposta:
Ele se esforça para ser mais eficiente avaliando apenas os caracteres self.uma vez e, em seguida, usa formas consistentes para criar as sub-strings.
fonte
Swift 4 (Xcode 9.1)
fonte
capitalized
exatamente para esse fimSe você deseja colocar em maiúscula cada palavra da string, pode usar esta extensão
Swift 4 Xcode 9.2
Usava
fonte
.capitalized
Se sua string estiver em maiúsculas, o método abaixo funcionará
Esta extensão irá ajudá-lo
fonte
.capitalized
.capitalized
retornará (Este é um garoto) e este método retornará (Este é um garoto) Ambos são diferentes. (Por favor, + ve Voto ou remover negativo)return first.uppercased() + dropFirst()
ou retorno de um forro(first?.uppercased() ?? "") + dropFirst()
Adicione esta linha no método viewDidLoad ().
fonte
fonte
Para o swift 5, você pode fazer o seguinte:
Amostra: "abc" -> "Abc"
fonte