gpt4 book ai didi

arrays - 按 localizedCaseInsensitiveCompare 和默认 Comparable 对字符串数组进行排序有什么区别?

转载 作者:行者123 更新时间:2023-11-28 06:09:32 25 4
gpt4 key购买 nike

我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com