Swift 3:排序独立于扩展名的文件名数组

时间:2016-11-12 14:06:13

标签: arrays string sorting swift3

考虑这个数组:

let files = ["file2.tif", "file33.jpg", "file11.jpg"]

我想对这个数组进行排序,结果将是

sortedFiles = ["file2.tif", "file11.jpg", "file33.jpg"]

这里有两个问题,我不知道如何处理:

1)排序时如何忽略文件扩展名

2)如何确保" file2"放在" file11"

之前

非常感谢您的见解

1 个答案:

答案 0 :(得分:2)

选项是将字符串转换为NSString并使用基础方法deletingPathExtensioncompare:options:.numeric

let files = ["file2.tif", "file33.jpg", "file11.jpg"]

let sortedFiles = files.sorted(by: {
   return ($0 as NSString).deletingPathExtension.compare(($1 as NSString).deletingPathExtension, options: .numeric) == .orderedAscending
})