Solución:
No estoy seguro de lo que quiere decir con ‘no están entre comillas’, pero si en realidad son cadenas, entonces algo como esto:
var letterArray = [Character]()
for string in stringArray {
letterArray.append(string.characters.first!)
}
EDITAR
Para tenerlo como String
en lugar de lo que desee:
var letterArray = [String]()
for string in stringArray {
letterArray.append(String(string.characters.first!))
}
EDITAR 2
Como sugiere Leo Dabus, si pasa una cadena vacía, lo anterior fallará. Si sabe que nunca habrá una cadena vacía, esto no se aplica, pero he actualizado lo anterior para manejar este caso:
var letterArray = [String]()
for string in stringArray {
if let letter = string.characters.first {
letterArray.append(String(letter))
}
}
ACTUALIZACIÓN: SWIFT 4
De Swift 4 characters
ha quedado obsoleto. En lugar de usar string.characters.first
ahora debería operar en la Cadena directamente usando solo string.first
. Por ejemplo:
var letterArray = [String]()
for string in stringArray {
if let letter = string.first {
letterArray.append(String(letter))
}
}
Xcode 9 • Swift 4
extension Collection where Element: StringProtocol {
var initials: [Element.SubSequence] {
return map { $0.prefix(1) }
}
}
Xcode 8 • Swift 3
extension Collection where Iterator.Element == String {
var initials: [String] {
return map{String($0.characters.prefix(1))}
}
}
Xcode 7.3.1 • Swift 2.2.1
extension CollectionType where Generator.Element == String {
var initials: [String] {
return map{ String($0.characters.prefix(1)) }
}
}
let stringArray = ["Aruna", "Bala", "Chitra", "Divya", "Fatima"]
let initials = stringArray.initials // ["A", "B", "C", "D", "F"]
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)