我有一个有三个名字的数组。
var patients = ["Kund Karlsson", "Test Vid behov", "Test Övrigt"]我要按字母顺序排列这些名字。这就是它应该被命令的结果。
我像这个patients.sort({ $0 < $1 })一样对数组进行排序,但是我得到了错误的顺序。
我认为这是由unicode字母Ö引起的。
在字符串中有unicode字符时,有处理排序的方法吗?
谢谢。
发布于 2014-11-19 07:27:11
我想在英语中被视为O,但这可能并不适用于所有语言。您可以使用以下内容:
patients.sort {
$0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedDescending
}结果取决于您系统的地区。要使用特定的区域设置:
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
}https://stackoverflow.com/questions/27010850
复制相似问题