首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用unicode字符串对数组进行排序

使用unicode字符串对数组进行排序
EN

Stack Overflow用户
提问于 2014-11-19 07:01:01
回答 1查看 1.8K关注 0票数 3

我有一个有三个名字的数组。

代码语言:javascript
复制
var patients = ["Kund Karlsson", "Test Vid behov", "Test Övrigt"]

我要按字母顺序排列这些名字。这就是它应该被命令的结果。

  1. 昆德·卡尔松
  2. 试验Vid behov
  3. 测试vrigt

我像这个patients.sort({ $0 < $1 })一样对数组进行排序,但是我得到了错误的顺序。

  1. 昆德·卡尔松
  2. 测试vrigt
  3. 试验Vid behov

我认为这是由unicode字母Ö引起的。

在字符串中有unicode字符时,有处理排序的方法吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-19 07:27:11

我想在英语中被视为O,但这可能并不适用于所有语言。您可以使用以下内容:

代码语言:javascript
复制
patients.sort {
    $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedDescending
}

结果取决于您系统的地区。要使用特定的区域设置:

代码语言:javascript
复制
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
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27010850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档