I tried to sort like the array as follows:
let students: Set = [\"23412334\",\"&234@fwv\",\"Kofi\", \"Abena\", \"Peter\", \"Kweku\", \"Akosua\"]
let sortedSt
let words = ["23412334","&234@fwv","Kofi", "Abena", "Peter", "Kweku", "Akosua"]
func sortedNumbersLast(words: [String]) -> [String] {
var startsWithDigit = [String]()
var startsWithCharacter = [String]()
var startsWithSymbol = [String]()
for word in words {
if let first = word.characters.first {
if first >= "0" && first <= "9" {
startsWithDigit.append(word)
}
else {
if(!(first >= "a" && first <= "z") && !(first >= "A" && first <= "Z") ){
startsWithSymbol.append(word)
}else{
startsWithCharacter.append(word)
}
}
}
}
return startsWithCharacter.sorted(by: <) + startsWithDigit.sorted(by: <) + startsWithSymbol.sorted()
}
print(sortedNumbersLast(words: words))
["Abena", "Akosua", "Kofi", "Kweku", "Peter", "23412334", "&234@fwv"]
Modified Answer