arrays - 使用 Swift 排序时数组排序不正确(按 :) method

标签 arrays swift

<分区>

以下代码尝试按升序对字典的键进行排序。由于某种原因,“6:58”和“7:56”没有正确排序,但其他的排序正确。这可能是什么原因造成的?

print(dictionary.keys)
sortedKeys = dictionary.keys.sorted(by: <)
print(sortedKeys)

["7:56", "14:57", "11:57", "6:58", "10:59", "17:59"]
["10:59", "11:57", "14:57", "17:59", "6:58", "7:56"]

最佳答案

发生这种情况是因为字符串按字符串排序,即按字典顺序排序。因此,“1”“6”“7” 之前,因此列表排序正确。

一个快速解决这个问题的方法是向表示时间的四字符字符串添加零,即将您的列表更改为

["07:56", "14:57", "11:57", "06:58", "10:59", "17:59"]

此列表将正确排序。如果这不是一个选项,请使用自定义比较器,as described in this Q&A .

关于arrays - 使用 Swift 排序时数组排序不正确(按 :) method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51088970/

相关文章:

c# - 如何确定数组中唯一派生类型的数量?

swift - Apple Swift 中的类实例化

swift - 为什么搜索栏将导航栏推出图片之外?

ios - 如何使用不同的单元格大小垂直渲染 UICollectionviewcell

swift - 你能覆盖闭包中的变量定义吗?

python - swift 将一串字母分成3s

java - 从 json 响应将字符串转换为 android 中的数组

java - parse.com - 使用 .include() 查询检索数组数据有多深?

c - 在 C 编程语言的声明时初始化二维数组

swift - UIImage 在 segue 推送时返回 nil