我有一組存儲在數組中的字符串。如何在iOS Swift中獲取數組中所有字符串的首字母?
stringArray = [Aruna, Bala, Chitra, Divya, Fatima]
我想獲取所有字符串的第一個字母並將其存儲在數組中。 像:letterArray = [A, B, C, D, F]
注:他們不是引號內「 - 」
我有一組存儲在數組中的字符串。如何在iOS Swift中獲取數組中所有字符串的首字母?
stringArray = [Aruna, Bala, Chitra, Divya, Fatima]
我想獲取所有字符串的第一個字母並將其存儲在數組中。 像:letterArray = [A, B, C, D, F]
注:他們不是引號內「 - 」
不知道你的「他們不是內引號」的意思,但如果他們實際上是字符串,然後是這樣的:
var letterArray = [Character]()
for string in stringArray {
letterArray.append(string.characters.first!)
}
編輯
把它作爲String
,而不是如你所願:
var letterArray = [String]()
for string in stringArray {
letterArray.append(String(string.characters.first!))
}
EDIT 2
由於Leo Dabus建議,如果你傳遞一個空字符串上面會失敗。如果你知道永遠不會有一個空字符串,這並不適用,但我已經更新上面來處理這種情況:
var letterArray = [String]()
for string in stringArray {
if let letter = string.characters.first {
letterArray.append(String(letter))
}
}
的Xcode 8的Beta 3•斯威夫特3
extension Collection where Iterator.Element == String {
var initials: [String] {
return map{String($0.characters.prefix(1))}
}
}
的Xcode 7.3.1•斯威夫特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"]
很好的答案,我們可以製作一系列獨特的縮寫,即在擴展中不重複嗎? –
@ChanchalRaj stackoverflow.com/a/39324354/2303865只需將.orderedSet添加到'stringArray.initials.orderedSet' –
我希望將'letterAray'作爲'[String]'而不是'[Character]'是否有可能? – AAA
但他們不是字符串,他們只是字符。你有什麼使用案例,一個字符與一個字母在其中的字符串有什麼關係? – pbush25
將其更新爲以字符串形式存儲。 – myles