我尝试用数字对字符串数组进行排序,但我得不到正确的顺序。
print(alleTouren) // ["1", "3", "2", "5", "15", "4"]
alleTouren = alleTouren.sorted(by: {$0 < $1})
print(alleTouren) // ["1", "15", "2", "3", "4", "5"]
我也尝试了 alleTouren.sort(by:&lt;)和 alleTouren.sort(),但我总是过早地回到15岁。我做错了什么?
答案 0 :(得分:0)
问题是你似乎在说你要对它们进行排序,好像它们是数字一样,但它们是字符串,所以“1”,“15”,“2”......是正确的。您可以尝试将$ 0和$ 1转换为整数并进行比较。
我不是Swift专家,但这似乎有效:
alleTouren = alleTouren.sorted{let s0 = Int($0)
let s1 = Int($1)
return s0! < s1!}
答案 1 :(得分:0)
由于所有字符串都可以转换为Int
,因此将转换添加到闭包中。
var alleTouren = ["1", "3", "2", "5", "15", "4"]
alleTouren = alleTouren.sorted(by: { Int($0)! < Int($1)! })
或者使用compare
的{{1}}函数和String
选项,这可能更有效。
numeric