我被困在数组排序中。
我想按名称对数组进行排序
var mesta: NSArray = ["ceska lipa", "budejovice", "liptakov"]
var zkouska = "lip"
let predicate = NSPredicate(format: "SELF contains %@", zkouska)
print(mesta.filter{ predicate.evaluate(with: $0)})
它打印 [ceska lipa,liptakov] ,但我想先做liptakov,因为字母 lip 早于 ceska lipa >
我想要结果[利普塔科夫,切斯卡利帕]
我尝试过:
let predicate = NSPredicate(format: "SELF BEGINSWITH %@", zkouska)
,但仅打印 liptakov
答案 0 :(得分:2)
var mesta = ["ceska lipa", "budejovice", "liptakov"]
var zkouska = "lip"
let filtered = mesta.filter { $0.contains(zkouska) }
let sorted = filtered.sorted {
return $0.range(of: zkouska)!.lowerBound < $1.range(of: zkouska)!.lowerBound
}
print(sorted) // ["liptakov", "ceska lipa"]