Qual è il modo di estrarre l'ultima parola in una stringa in Swift? Quindi se ho "Lorem ipsum dolor sit amet", ritorna "amet". Qual è il modo più efficace per farlo?Estrai l'ultima parola in stringa con Swift
risposta
È possibile utilizzare il metodo String enumerateSubstringsInRange. Il primo parametro passa semplicemente i caratteri String.indices e l'opzione .ByWords. Basta aggiungere ciascuna sottostringa alla matrice finale e restituirla.
Xcode 8.1 • Swift 3.0.1 o successivo
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 ?? ""
}
}
Usage:
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
}
}
Primo utilizzo componentsSeparatedByString
di dividere la stringa in un array dallo spazio, quindi ottenere l'ultima parola della matrice utilizzando .last
var string = "Lorem ipsum dolor sit amet"
var stringArr = string.componentsSeparatedByString(" ")
var lastWord = stringArr.last //amet
Vorrei anche considerare l'utilizzo di componentsSeparatedByCharactersInSet
, e utilizzando il set di caratteri spazio bianco:
let string = "Lorem ipsum dolor sit amet"
let stringArray = string.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
print(stringArray.last)
Mi piace il tuo approccio! Molte grazie! È possibile ottenere le ultime due parole con questo approccio o dovrei usare un ciclo for? – senty
Non dimenticare di aggiungere 'import Foundation' alla risposta. L'esempio non funzionerà senza di esso. – ColGraff
Funziona per me senza 'import Foundation':/ – senty
Le altre risposte vanno bene se si desidera includere le classi Foundation. Se si desidera utilizzare Swift-solo le classi allora si può fare in questo modo:
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. Estrai l'ultima parola nella stringa in R
- 2. Estrai l'ultima parola in stringa/frase?
- 3. Estrai stringa con Python re.match
- 4. Estrai fuso orario da stringa
- 5. Manipolazione stringa PHP: Estrai hrefs
- 6. Estrai attributi di una stringa
- 7. Estrai lettere da una stringa in R
- 8. Java: estrai tutti i collegamenti con una determinata parola in essi con JSoup?
- 9. Enum con stringa localizzata in swift
- 10. Sostituisci stringa con regex in swift
- 11. cos'è la parola chiave "as" in swift
- 12. regex, estrai la stringa NOT tra due parentesi
- 13. Nona parola in una stringa
- 14. Estrai URL da una stringa utilizzando PHP
- 15. Rimuovere in modo efficiente l'ultima parola da una stringa in Swift
- 16. Iterare attraverso una stringa parola per parola
- 17. Sostituita stringa in Swift 2
- 18. ios swift: è possibile modificare lo stile del carattere di una determinata parola in una stringa?
- 19. Estrai X numero di parole che circondano una determinata stringa di ricerca all'interno di una stringa
- 20. Converti dizionario Swift in stringa
- 21. Separare una stringa in swift
- 22. Decodifica una stringa in Swift
- 23. assert Swift con la stringa di parametri
- 24. Stringa con contenuto di Url Swift?
- 25. Estrai JSON dal testo
- 26. Get prima parola della stringa
- 27. Lunghezza della stringa in Swift 1.2 e Swift 2.0
- 28. prendendo l'input di una stringa parola per parola
- 29. Estrai le coordinate X e Y dalla stringa
- 30. Come inizializzare NSTextStorage con una stringa in Swift
Enormi ringraziamenti !! Penso che la risposta dovrebbe essere accettata. – senty