在Swift Ascending中使用空项目对数组进行排序

B_s

在Xcode(Swift)中,我有一个初始化为100个空项目的数组:

var persons = [String](count:100, repeatedValue: "")

使用某些函数,我将内容添加到数组中的位置(从0开始)。

例如,我的数组在某个给定的时刻:

["Bert", "Daniel", "Claire", "Aaron", "", "", ... ""]

圆点代表其余的空项目。我使用此函数按字母顺序对数组进行排序:

persons = persons.sorted {$0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedAscending }

这给了我一个像这样的数组:

["", "", ... , "Aaron", "Bert", "Claire", "Daniel"]

我想要的是按字母顺序对数组进行排序,但不要在前面有空项。我需要像这样返回一个数组:

["Aaron", "Bert", "Claire", "Daniel", "", "", ... , ""]

就我而言,我不希望有一个空项目的数组,但是我发现如果我不声明为100个项目,则无法向该数组添加值(该数组不会填充为100个项目,这是为了当然)。

谁能帮我吗?

迈克·S

正如@Antonio所说,您似乎需要按降序排列的字符串除了Dictionary@Antonio的答案中方法(效果很好)之外,您还可以使用NSMutableSet(从Objective-C桥接):

let personSet = NSMutableSet()
personSet.addObject("Aaron")
personSet.addObject("Daniel")
personSet.addObject("Claire")
personSet.addObject("Aaron")
personSet.addObject("Bert")
personSet.addObject("Bert")
personSet.addObject("Joe")
personSet.removeObject("Joe") // You can remove too of course

创建集合:

{(
    Claire,
    Aaron,
    Daniel,
    Bert
)}

然后,当您希望人们作为时Array,可以将allObjects演员表转换为[String]

personSet.allObjects as [String]

您可以像现在一样对它进行排序:

let people = (personSet.allObjects as [String]).sort {$0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedAscending }

这使得people

[Aaron, Bert, Claire, Daniel]

对于那些想知道如何Array按问题中最初说明那样进行排序(升序但末尾有空字符串)的人,可以在sort函数中使用一些自定义逻辑来完成:

var persons = ["Bert", "Daniel", "Claire", "Aaron", "", "", ""]
persons.sort { (a, b) -> Bool in
    if a.isEmpty {
        return false
    } else if b.isEmpty {
        return true
    } else {
        return a.localizedCaseInsensitiveCompare(b) == .OrderedAscending
    }
}

结果:

["Aaron", "Bert", "Claire", "Daniel", "", "", ""]

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Swift中使用AnyObjects对数组进行排序

来自分类Dev

Swift:使用NSRange对数组进行排序

来自分类Dev

Swift:使用替代比较对数组进行排序

来自分类Dev

对数组进行排序并查找更改-Swift

来自分类Dev

对数组的元素进行排序 (Swift)

来自分类Dev

Swift 4.2 使用选定的属性和排序顺序对数组进行排序

来自分类Dev

组合两个数组并对数组进行排序Swift

来自分类Dev

Swift 3:使用sort函数对数组进行排序:看到'sort(comparator :)'的歧义使用错误

来自分类Dev

如何以升序对数组进行排序Swift 2.3

来自分类Dev

学习Swift闭包-对数组进行排序

来自分类Dev

如何在Swift中对数组进行排序?

来自分类Dev

如何以升序对数组进行排序Swift 2.3

来自分类Dev

Swift如何通过键值对数组字典进行排序

来自分类Dev

在Swift中使用NSDate进行NSSortDescriptor排序

来自分类Dev

Swift:按字母顺序对数组排序

来自分类Dev

如何在Swift中对数组排序

来自分类Dev

Swift:按自然顺序对数组排序

来自分类Dev

在 Swift3 iOS 中使用字符串参数对对象数组进行排序

来自分类Dev

与Swift中的另一个数组相比,对数组进行重新排序

来自分类Dev

有没有办法在 Swift 中按子数组的索引对数组进行排序?

来自分类Dev

无法对Swift数组进行排序

来自分类Dev

Swift返回将对数组进行排序的索引(类似于numpy argsort)

来自分类Dev

Swift返回将对数组进行排序的索引(类似于numpy argsort)

来自分类Dev

在Swift中按最后一个对象对数组进行排序

来自分类Dev

在Swift 3.0中按字母顺序对数组[[String:Any]]进行排序

来自分类Dev

如何在 swift 4 中对数组中的 JSON 数据进行排序

来自分类Dev

通过比较字符串值 swift 对数组进行排序

来自分类Dev

在Swift中使用NSPredicate对CoreData结果进行排序

来自分类Dev

在 Ruby 中使用冒泡排序对数组进行排序

Related 相关文章

  1. 1

    在Swift中使用AnyObjects对数组进行排序

  2. 2

    Swift:使用NSRange对数组进行排序

  3. 3

    Swift:使用替代比较对数组进行排序

  4. 4

    对数组进行排序并查找更改-Swift

  5. 5

    对数组的元素进行排序 (Swift)

  6. 6

    Swift 4.2 使用选定的属性和排序顺序对数组进行排序

  7. 7

    组合两个数组并对数组进行排序Swift

  8. 8

    Swift 3:使用sort函数对数组进行排序:看到'sort(comparator :)'的歧义使用错误

  9. 9

    如何以升序对数组进行排序Swift 2.3

  10. 10

    学习Swift闭包-对数组进行排序

  11. 11

    如何在Swift中对数组进行排序?

  12. 12

    如何以升序对数组进行排序Swift 2.3

  13. 13

    Swift如何通过键值对数组字典进行排序

  14. 14

    在Swift中使用NSDate进行NSSortDescriptor排序

  15. 15

    Swift:按字母顺序对数组排序

  16. 16

    如何在Swift中对数组排序

  17. 17

    Swift:按自然顺序对数组排序

  18. 18

    在 Swift3 iOS 中使用字符串参数对对象数组进行排序

  19. 19

    与Swift中的另一个数组相比,对数组进行重新排序

  20. 20

    有没有办法在 Swift 中按子数组的索引对数组进行排序?

  21. 21

    无法对Swift数组进行排序

  22. 22

    Swift返回将对数组进行排序的索引(类似于numpy argsort)

  23. 23

    Swift返回将对数组进行排序的索引(类似于numpy argsort)

  24. 24

    在Swift中按最后一个对象对数组进行排序

  25. 25

    在Swift 3.0中按字母顺序对数组[[String:Any]]进行排序

  26. 26

    如何在 swift 4 中对数组中的 JSON 数据进行排序

  27. 27

    通过比较字符串值 swift 对数组进行排序

  28. 28

    在Swift中使用NSPredicate对CoreData结果进行排序

  29. 29

    在 Ruby 中使用冒泡排序对数组进行排序

热门标签

归档