Swift-将版本数组按字符串排序

约翰·杜

我有一个随机排列的(应用程序版本的)字符串数组,如下所示:

var arrayOfStrings = ["2.12.5", "2.12.10", "2.2", "2.11.8"]

排序后的数组应为[“ 2.2”,“ 2.12.10”,“ 2.12.5”,“ 2.11.8”](按最新顺序排列)。我正在尝试对它进行排序。

编辑:我不好,排序后的数组实际上应该是[“ 2.12.10”,“ 2.12.5”,“ 2.11.8”,“ 2.2”]。使用上面的解决方案。

//Compare by string
array.sortInPlace({ //This returns ["2.2", "2.12.5", "2.12.10", "2.11.8"]
    $0 > $1
})

//Compare by int
array.sortInPlace({ //This returns ["2.12.10", "2.12.5", "2.11.8", "2.2"]
    Int($0.stringByReplacingOccurrencesOfString(".", withString: "")) > Int($1.stringByReplacingOccurrencesOfString(".", withString: ""))
})

所有这些都无法正常工作。返回正确数组的最佳方法是什么?

最简单的办法是使用compare具有.NumericSearch

arrayOfStrings.sortInPlace { $0.compare($1, options: .NumericSearch) == .OrderedAscending }

显然,如果要降序使用,请使用.OrderedDescending

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章