下面的代码用于排序字符串数组,如果它们都是小写或全部大写但我想在排序时忽略大小写.我怎么能这样做?以下是自定义类的数组.
resultListArray.sort({ $0.fileName.compare($1.fileName) == NSComparisonResult.OrderedAscending })
Leo*_*bus 39
你可以使用String方法localizedCompare()
更新:Xcode 8.2•Swift 3.0.2
let array = ["def","Ghi","Abc" ]
let sorted1 = array.sorted{$0.compare($1) == .orderedAscending}
print(sorted1) // ["Abc", "Ghi", "def"] this is case SENSITIVE!
let sorted2 = array.sorted{$0.localizedCompare($1) == .orderedAscending}
print(sorted2) // ["Abc", "def", "Ghi"]
// you can also use the String compare options parameter to give you more control when comparing your strings
let sorted3 = array.sorted{$0.compare($1, options: .caseInsensitive) == .orderedAscending }
print(sorted3) // ["Abc", "def", "Ghi"]\n"
// which can be simplifyed using the string method caseInsensitiveCompare
let sorted4 = array.sorted{$0.caseInsensitiveCompare($1) == .orderedAscending}
print(sorted4) // ["Abc", "def", "Ghi"]\n"
// or localized caseInsensitiveCompare
let array5 = ["Cafe B","Café C","Café A"]
let sorted5 = array5.sorted{$0.localizedCaseInsensitiveCompare($1) == .orderedAscending}
print(sorted5) // "["Café A", "Cafe B", "Café C"]\n"
Run Code Online (Sandbox Code Playgroud)
Qby*_*yte 15
您可以将其转换String为小写,然后进行比较:
array.sort{ $0.lowercaseString < $1.lowercaseString }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6744 次 |
| 最近记录: |