在Swift 3中按字母顺序排序两个字符串变量?

时间:2017-11-07 17:31:29

标签: ios swift sorting swift3

我有两个字符串变量:var myNamevar friendsName。它们都是字符串,我想按字母顺序对它们进行排序。当我将它们放入像var nameArray = [myName, friendsName]这样的数组中然后尝试通过执行nameArray.sort()对它进行排序 - 我收到一个错误,告诉我需要使用by谓词。

如果swift没有将它们视为具有可比性,我将如何按字母顺序排序这些字符串?

2 个答案:

答案 0 :(得分:3)

因此,在Swift3中,您可以执行nameArray.sorted()nameArray.sort()

只需执行以下操作即可让它们具有可比性:nameArray = nameArray.sorted(by: { $0 > $1 })nameArray.sort(by: <)

示例:

  • .sorted

    var nameArray = ["Tommy", "Anoop", "Jerry"]
    nameArray = nameArray.sorted(by: { $1 > $0 })
    print(nameArray)
    
  • 的.sort

    var nameArray = ["Tommy", "Anoop", "Jerry"]
    nameArray.sort(by: <)
    print(nameArray)
    

输出:["Anoop", "Jerry", "Tommy"]

答案 1 :(得分:1)

例如,如果其中一个字符串为nil,则会抛出此错误。您可能尝试以更清晰的方式捕获这一点的一件事是将nameArray声明为字符串数组。

var nameArray: [String] = [myname, friendsName]

如果其中一个字符串根本不是字符串,您将收到不同的错误。