- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Playground 上声明了以下数组
var stringArray = ["a","A","@c","&","!","f","G","h"]
当我尝试使用(因为 String 符合 Comparable )对其进行排序时
stringArray = stringArray.sorted(by: { $0 < $1 })
我得到了以下结果
["!", "&", "@c", "A", "G", "a", "f", "h"]
但是,如果我将其声明为
stringArray = stringArray.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending }
我会得到不同的结果
["!", "@c", "&", "A", "a", "f", "G", "h"]
结果不一样。
为什么会发生这种行为?
最佳答案
不同的语言环境可能对字符有不同的排序顺序。当您向用户呈现排序列表时,您应该使用它。
使用 localizedCaseInsensitiveCompare
可确保如果您有一个要呈现给用户的列表,它会按照用户期望的方式使用当前语言环境进行排序。
关于arrays - 按 localizedCaseInsensitiveCompare 和默认 Comparable 对字符串数组进行排序有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47152586/
我正在尝试按字母顺序对数组进行排序。在瑞典字母表中,字母 Å 是字母表中倒数第三个字母,因此下面的数组应按 A, B, Å 排序。但它的排序方式如下 A, Å, B 。造成这种行为的原因是什么? NS
我打算使用以下代码行: [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES selector:@selector(caseInse
我已经搜索了过去几个小时,但尚未找到答案。我实现了一个AVFoundation相机,将图像数据保存到磁盘上,仅将路径存储在核心数据中。一切正常,但是在随机拍摄了几张照片后,出现此错误: CoreDat
我在 Playground 上声明了以下数组 var stringArray = ["a","A","@c","&","!","f","G","h"] 当我尝试使用(因为 String 符合 Comp
我在以下行收到主题警告: NSSortDescriptor * sort = [ [NSSortDescriptor alloc] initWithKey:@"name"
在核心数据获取请求中,我想对结果进行排序,不区分大小写。所以我编码: NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
我是一名优秀的程序员,十分优秀!