arrays - 以字符串格式对包含日期的数组进行排序

标签 arrays sorting date swift

我有一个这样的数组:

["Novembre", "Mars", "Décembre", "Octobre", "Février", "Janvier"]

我怎样才能对它进行排序,使其变成:

["Décembre", "Novembre", "Octobre", "Mars", "Février", "Janvier"]

最佳答案

几乎相同,但按规则生成字典肯定比必须自己键入月份名称和数字更好:

var names:[String] = []
if let cal = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian) {
    cal.locale = NSLocale(localeIdentifier: "fr")
    names = cal.monthSymbols as [String]
}
var months : [String:Int] = [:]
for (ix,name) in enumerate(names) {
    months[name] = ix
}
// now we are ready
let data = ["Novembre", "Mars", "Décembre", "Octobre", "Février", "Janvier"]
let result = data.sorted {months[$0.lowercaseString] > months[$1.lowercaseString]}

关于arrays - 以字符串格式对包含日期的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27454787/

相关文章:

java - 如何将其项目作为另一个数组制作一个数组

PHP - 按数组键对数组进行排序

javascript - 合并两个具有不同键但相同值的无序对象?

java - 如何在java中格式化日期字符串?

sql - 在 SQL 中创建动态日期范围

c# - 在自定义方法中为数组中的元素分配最小值 (array.Min())

javascript - 安全高效的动态多标准数组过滤javascript

java - 用非常大的数组计算幂集,Java?‽

java - Solr 字符串文字排序 - PatternReplaceFilterFactory

java - 对日期 ListArray 以及标题的第二个数组进行排序