Isu*_*uru 3 arrays sorting unicode unicode-string swift
我有一个包含 3 个名称的数组。
var patients = ["Kund Karlsson", "Test Vid behov", "Test Övrigt"]
Run Code Online (Sandbox Code Playgroud)
我需要按字母顺序对这些名称进行排序。这是它应该被订购的结果。
我像这样对数组进行排序,patients.sort({ $0 < $1 })但我得到了错误的顺序。
我认为这是由那个 unicode 字母引起的Ö。
当字符串中有 unicode 字符时,有没有办法处理排序?
谢谢你。
我猜Ö在英语中被视为O,但这可能不适用于所有语言。您可以使用以下内容:
patients.sort {
$0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedDescending
}
Run Code Online (Sandbox Code Playgroud)
结果取决于您系统的区域设置。要使用特定的语言环境:
var patients = ["Kund Karlsson", "Test Vid behov", "Test Övrigt"]
let locale = NSLocale(localeIdentifier: "sv_SE")
patients.sort {
let str1 = $0 as NSString
let str2 = $1 as NSString
return str1.compare(str2, options: .CaseInsensitiveSearch, range: NSMakeRange(0, str1.length), locale: locale) == NSComparisonResult.OrderedAscending
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1485 次 |
| 最近记录: |