swift中的sorted func排序不正确。
未分类的对象
[" 9"," 7"," 3"," 8"," 6",& #34; 2"," 4"," 10"," 5"]
排序对象
[" 10" ," 2"," 3"," 4",&#34 ; 5"," 6"," 7"," 8"," 9"]
代码:
print("unsorted objects",students.map{($0 as! EX_STUDENT).roll_no!})
studentList = students.sorted{($0 as! EX_STUDENT).roll_no! < ($1 as! EX_STUDENT).roll_no!}
print("sorted objects",studentList.map{($0 as! EX_STUDENT).roll_no!})
为什么10是第0个指数?
答案 0 :(得分:1)
您可以使用localizedStandardCompare以数字方式对字符串进行排序:
let numbers = ["9", "7", "3", "8", "6", "2", "4", "10", "5"]
let numericSort = numbers.sorted{$0.localizedStandardCompare($1) == .orderedAscending}
numericSort // ["2", "3", "4", "5", "6", "7", "8", "9", "10"]