Ich versuche, ein Autokorrektur-System zu erstellen, und wenn ein Benutzer ein Wort mit einem Großbuchstaben eingibt, funktioniert die Autokorrektur nicht. Um dies zu beheben, habe ich eine Kopie der eingegebenen Zeichenfolge erstellt, .lowercaseString angewendet und sie dann verglichen. Wenn die Zeichenfolge tatsächlich falsch geschrieben ist, sollte sie das Wort korrigieren. Dann ist das Wort, das das eingegebene Wort ersetzt, nur Kleinbuchstaben. Daher muss ich .uppercaseString nur auf den ersten Buchstaben anwenden. Ich dachte ursprünglich, ich könnte verwenden
nameOfString[0]
aber das funktioniert anscheinend nicht. Wie kann ich den ersten Buchstaben der Zeichenfolge in Großbuchstaben schreiben und dann die vollständige Zeichenfolge mit dem Großbuchstaben drucken?
Vielen Dank für jede Hilfe!
quelle
.capitalizedString
in Xcode 7 Beta 4 nicht mehr funktioniert. Die Zeichenfolgen haben sich in Swift 2.0 etwas geändert.Foundation
verlegenes Grinsen.uppercaseString
dafür.capitalized
jetzt. Beachten Sie auchcapitalizedStringWith(_ locale:)
Swift 5.1 oder höher
Swift 5
quelle
UITextField
Beobachter für verwendet wirdUITextFieldTextDidChangeNotification
.für "Hallo Welt"
oder für "HALLO WORLD"
quelle
Swift 4.0
oder
Dies aktiviert jedoch den ersten Buchstaben jedes Wortes
Apples Dokumentation:
quelle
Für Swift 5:
quelle
isEmpty
und eine Zeichenfolge initialisieren, um sie zu ersetzen. Sie können das erste Zeichen einfach auspacken und falls es fehlschlägt, geben Sie einfach nil zurück. Dies kann vereinfacht werden alsvar firstCharacterUpperCase: String? { guard let first = first else { return nil } return lowercased().replacingCharacters(in: startIndex...startIndex, with: first.uppercased()) }
Für das erste Zeichen im Wortgebrauch
.capitalized
in schneller und für den Ganzwortgebrauch.uppercased()
quelle
Swift 2.0 (einzeilig):
quelle
.localizedLowercaseString
am Ende hinzugefügt , damit es mit Zeichenfolgen wie: aNYsTring funktioniert.String(nameOfString.characters.prefix(1)).uppercaseString + String(nameOfString.characters.dropFirst()).localizedLowercaseString
Swift 3 (xcode 8.3.3)
Alle ersten Zeichen der Zeichenfolge in Großbuchstaben schreiben
Alle Zeichen in Großbuchstaben schreiben
Nur das erste Zeichen der Zeichenfolge in Großbuchstaben
quelle
In schneller 5
https://www.hackingwithswift.com/example-code/strings/how-to-capitalize-the-first-letter-of-a-string
Verwenden Sie mit Ihrer Zeichenfolge
quelle
Ich bekomme das erste Zeichen, das mit Kirsteins 'Lösung dupliziert wurde. Dadurch wird das erste Zeichen groß geschrieben, ohne das Doppelte zu sehen:
Ich weiß nicht, ob es mehr oder weniger effizient ist, ich weiß nur, dass es mir das gewünschte Ergebnis liefert.
quelle
countElements
ist nurcount
.Von Swift 3 können Sie leicht verwenden
textField.autocapitalizationType = UITextAutocapitalizationType.sentences
quelle
Hier ist eine Version für Swift 5 , die die Unicode-API für skalare Eigenschaften verwendet, um zu retten, wenn der erste Buchstabe bereits in Großbuchstaben geschrieben ist oder keine Vorstellung von Groß- und Kleinschreibung hat:
quelle
return first.uppercased() + dropFirst()
oder ein Liner(first?.uppercased() ?? "") + dropFirst()
Großschreibung des ersten Zeichens in der Zeichenfolge
quelle
In Swift 3.0 (dies ist etwas schneller und sicherer als die akzeptierte Antwort):
nameOfString.capitalized funktioniert nicht , es werden alle Wörter im Satz großgeschrieben
quelle
Dank an Leonardo Savio Dabus:
Ich stelle mir vor, dass die meisten Anwendungsfälle darin bestehen, das richtige Gehäuse zu erhalten:
quelle
Meine Lösung:
quelle
Unter Einbeziehung der obigen Antworten habe ich eine kleine Erweiterung geschrieben, die den ersten Buchstaben jedes Wortes groß schreibt (weil ich danach gesucht habe und dachte, jemand anderes könnte es verwenden).
Ich reiche demütig ein:
quelle
Swift 4
quelle
So habe ich es in kleinen Schritten gemacht, ähnlich wie bei @Kirsteins.
quelle
Funktioniert auch einfach, geben Sie Ihren String ein und erhalten Sie einen großgeschriebenen zurück.
quelle
Swift 3 Update
Die
replaceRange
Funk ist jetztreplaceSubrange
quelle
Ich bin Teil dieser Version, die eine bereinigte Version einer anderen Antwort ist:
Es ist bestrebt, effizienter zu sein, indem self.characters nur einmal ausgewertet werden, und verwendet dann konsistente Formulare, um die Unterzeichenfolgen zu erstellen.
quelle
Swift 4 (Xcode 9.1)
quelle
capitalized
genau zu diesem Zweck aufgerufen wurdeWenn Sie jedes Wort der Zeichenfolge groß schreiben möchten, können Sie diese Erweiterung verwenden
Swift 4 Xcode 9.2
Gebraucht
quelle
.capitalized
Wenn Ihre Zeichenfolge nur aus Großbuchstaben besteht, funktioniert die folgende Methode
Diese Erweiterung hilft Ihnen
quelle
.capitalized
.capitalized
wird zurückgegeben (Dies ist ein Junge) und diese Methode wird zurückgegeben (Dies ist ein Junge). Beide sind unterschiedlich. (Bitte + ve abstimmen oder Negativ entfernen)return first.uppercased() + dropFirst()
oder ein Liner zurück(first?.uppercased() ?? "") + dropFirst()
Für Swift 5 können Sie einfach so vorgehen:
Beispiel: "abc" -> "Abc"
quelle
Fügen Sie diese Zeile in der viewDidLoad () -Methode hinzu.
quelle
quelle