Swift-需要对星期几的字符串进行排序

eller

斯威夫特4

我有一个数组,其中将包含星期几中的随机文本。例如

var daysOfWeek: [String] = [] // ["Tuesday", "Thursday" , "Sunday", "Friday"]

我希望能够对它们进行排序:周日,周一,周二等。

我不确定这是否是正确的方法,但我尝试过此方法。

     let dateFormatter = DateFormatter()

    for element in daysOfWeek {

        print(dateFormatter.weekdaySymbols[element])
    }

这引发一个错误:

value of optional type '[String]?' must be unwrapped to refer to member 'subscript' of wrapped base type

我对Xcode和Swift相当陌生

这是正确的方法吗?如果是这样,我该如何解决错误?

如果这不是正确的方法,那是什么?感谢您的帮助

清扫器

您可以创建像这样的字典,该字典将每个字符串与一个数字值对应:

let weekDayNumbers = [
    "Sunday": 0,
    "Monday": 1,
    "Tuesday": 2,
    "Wednesday": 3,
    "Thursday": 4,
    "Friday": 5,
    "Saturday": 6,
]

然后您可以按以下顺序排序:

weekdays.sort(by: { (weekDayNumbers[$0] ?? 7) < (weekDayNumbers[$1] ?? 7) })

这将在末尾订购非工作日的字符串。

另请注意,世界不同地区的一周开始时间不同。他们可能会以不同的顺序订购东西。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章