The array value should be sort like (alphabetic, numbers and special characters)

前端 未结 3 554
萌比男神i
萌比男神i 2021-01-21 23:48

I tried to sort like the array as follows:

let students: Set = [\"23412334\",\"&234@fwv\",\"Kofi\", \"Abena\", \"Peter\", \"Kweku\", \"Akosua\"]
let sortedSt         


        
3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-22 00:15

    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

提交回复
热议问题