I want to sort an alphanumeric, but numbers should come at end instead of beginning. for instance
let array = [\"1\", \"a\", \"b\", \"z\", \"3\", \"!\"]
let sor
Assume that you want to receive "numbers should come at end instead of beginning", without watching your example with unexpected "!" sorting. Then you can do this:
let array = ["1", "a", "b", "z", "3", "!"]
let sortedArray = array.sort { (firstObject, secondObject) -> Bool in
let firstIsNumber = firstObject.rangeOfCharacterFromSet(NSCharacterSet.decimalDigitCharacterSet())?.count > 0
let secondIsNumber = secondObject.rangeOfCharacterFromSet(NSCharacterSet.decimalDigitCharacterSet())?.count > 0
if firstIsNumber != secondIsNumber {return secondIsNumber}
return firstObject < secondObject
}
print(sortedArray)
//["!", "a", "b", "z", "1", "3"]