我正在按字母顺序(前两个字母)对表格视图的字符串数组进行排序,但不知道如何使用德语本地化进行排序。
在 xcode 中将本地化更改为德语时,排序功能确实会将第二个字母的所有“元音变音”放在第二个字母的末尾。
这是输出:
排序名称数组 [“埃伯斯巴赫,德克”,“埃斯曼,克里斯托夫”,“法尔海姆,西尔克”,“福斯特,托马斯”,“弗鲁特恩,汉斯博士”,“福斯特,教授法尔辛博士”,“加迪亚,克里斯蒂安”,“马里奥·格吕内尔特”、“克里斯汀·亨尼格”、“伊冯娜·霍斯费尔特”、“卡蒂·兰格”、“格奥尔格·利布施瓦格”、“斯特凡·洛斯”、“沃尔克博士路德维希”、“妮可·米凯利斯”、“ Neißhardt,Claudia”、“Niepel、Mandy”、“Nützer、Jens”、“Patientenaufnahme D”、“Patientenaufnahme FR/C”、“Patientenaufnahme Ortho/BV”、“Qasem,Mohammed”、“Raschke、Steffen”、“Riebel” ,海克”,“里德尔,西蒙娜”,“施赖纳,德克”,“塞德尔,安特耶”,“西勒,克里斯蒂安”,“祖尔克,卡蒂博士”]
排序功能是这样的:
var bez = [String]()
let sortedBez = bez.sorted(by: {
$0.lowercased() < $1.lowercased() } )
但是在排序输出数组中“Förster, Prof. Dr. Farsin”(排序数组的元素 5)应该位于“Foerster, Thomas”(作为排序数组的元素 4)之后。
我怎样才能实现这个目标?我已经尝试将 xcode 的本地化设置更改为德语,但没有帮助。
您可以将
String.Comparator
传递给 sort
:
bez.sorted(using: String.Comparator(
options: .caseInsensitive/*, locale: Locale(identifier: "de")*/
))
如果没有
locale:
参数,这已经将“Fö”排序在“Foe”之后。如果您特别想使用德语语言环境的排序规则,您也可以添加 locale:
参数。