Wie wird das letzte Wort in einem String in Swift extrahiert? Also, wenn ich "Lorem ipsum dolor sit amet" habe, gib "amet" zurück. Was ist der effizienteste Weg, dies zu tun?Letztes Wort in String mit Swift extrahieren
Antwort
können Sie String-Methode enumerateSubstringsInRange verwenden. Erster Parameter übergeben Sie einfach Ihre String-Zeichen.indices und die Option .ByWords. Hängen Sie einfach jeden Teilstring an das letzte Array an und geben Sie es zurück.
Xcode 8.1 • Swift 3.0.1 oder später
extension String {
var byWords: [String] {
var byWords:[String] = []
enumerateSubstrings(in: startIndex..<endIndex, options: .byWords) {
guard let word = $0 else { return }
print($1,$2,$3)
byWords.append(word)
}
return byWords
}
func firstWords(_ max: Int) -> [String] {
return Array(byWords.prefix(max))
}
var firstWord: String {
return byWords.first ?? ""
}
func lastWords(_ max: Int) -> [String] {
return Array(byWords.suffix(max))
}
var lastWord: String {
return byWords.last ?? ""
}
}
Verbrauch:
let sentence = "Out of this world!!!"
let firstWord = sentence.firstWord // "Out"
let lastWord = sentence.lastWord // world"
let words = sentence.byWords // ["Out", "of", "this", "world"]
let first2Words = sentence.firstWords(2) // ["Out", "of"]
let last2Words = sentence.lastWords(2) // ["this", "world"]
Swift 2
extension String {
var byWords: [String] {
var result:[String] = []
enumerateSubstringsInRange(characters.indices, options: .ByWords) {
guard let substring = $0.substring else { return }
result.append(substring)
}
return result
}
}
Erster Einsatz componentsSeparatedByString
Ihre String in ein Array von Raum zu teilen, erhält dann das letzte Wort des Arrays .last
var string = "Lorem ipsum dolor sit amet"
var stringArr = string.componentsSeparatedByString(" ")
var lastWord = stringArr.last //amet
mit würde ich halte auch componentsSeparatedByCharactersInSet
verwenden und mit dem Leerzeichensatz:
let string = "Lorem ipsum dolor sit amet"
let stringArray = string.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
print(stringArray.last)
Ich mag Ihren Ansatz! Danke vielmals! Ist es möglich, die letzten beiden Wörter mit diesem Ansatz zu erhalten oder sollte ich eine for-Schleife verwenden? – senty
Vergessen Sie nicht, 'import Foundation' zur Antwort hinzuzufügen. Das Beispiel wird ohne es nicht funktionieren. – ColGraff
Es funktioniert für mich ohne 'import Foundation':/ – senty
Die anderen Antworten sind in Ordnung, wenn Sie Foundation-Klassen einbeziehen möchten. Wenn Sie Swift-only-Klassen verwenden möchten, dann können Sie es tun, auf diese Weise:
Swift 3:
let str = "Lorem ipsum dolor sit amet"
let split = str.characters.split(separator: " ")
let last = String(split.suffix(1).joined(separator: [" "]))
let lastTwo = String(split.suffix(2).joined(separator: [" "]))
print(last) // -> "amet"
print(lastTwo) // -> "sit amet”
Swift 2:
let str = "Lorem ipsum dolor sit amet"
let split = str.characters.split(Character(" "))
let last = String(split.suffix(1).joinWithSeparator([" "]))
let lastTwo = String(split.suffix(2).joinWithSeparator([" "]))
print(last) // -> "amet"
print(lastTwo) // -> "sit amet"
- 1. Letztes Wort in Zeichenfolge extrahieren in R
- 2. letztes Wort in Etikett Spaltung von \
- 3. Extract letztes Wort in einem String nach dem Komma, wenn mehrere Worte sonst das erste Wort sind
- 4. Extrahieren Sie das Wort out of string mit Regex
- 5. entfernen letztes Wort in einer Zeichenfolge in Objective-c
- 6. C in String letztes Zeichen löschen
- 7. Auf letztes Trennzeichen in Python-String aufteilen?
- 8. Extrahieren Währung von String
- 9. Wie extrahieren Wort aus Zeichenfolge in sql
- 10. Mit Regex ein bestimmtes Wort in String
- 11. Splitting ein Wort in Paare
- 12. Erhalten erstes Wort nach String in String
- 13. Extrahieren von Array aus JSON mit Swift
- 14. Extrahieren Unicode-String mit preg_match_all()
- 15. Javascript ersetzen letztes Auftreten von String
- 16. entfernen erstes und letztes Zeichen aus string
- 17. Ein Wort aus einer Zeichenfolge extrahieren
- 18. Split String von Wort
- 19. Zeitzone aus String extrahieren
- 20. Letztes Update Timestamp mit JPA
- 21. Excel, extrahieren variable Wort aus Zellen
- 22. Find String aus String mit NSRegularExpression Swift
- 23. Json mit Swift 2, Extrahieren von Daten
- 24. das letzte Wort aus einem String mit C#
- 25. String mit einem Array String - Swift
- 26. extrahieren Wert vor einem String Regex
- 27. Zahlen aus String extrahieren
- 28. Zahlen aus String extrahieren []
- 29. extrahieren das genaue Wort aus einer Zeichenfolge in Power
- 30. Swift 2.0 String mit substringWithRange
Vielen Dank !! Ich denke, dass diese Antwort die akzeptierte sein sollte. – senty