我想基于一个字段(player.name)对对象列表进行排序,但是在西班牙语中存在在订购时不必考虑的重音符号。
我对列表进行了排序
strikers.sortedWith(compareBy { it.name })
但是我不知道如何应用于上述排序
val spanishCollator = Collator.getInstance(Locale("es", "ES"))
我该如何实现?
问候,迭戈
答案 0 :(得分:5)
像这样?
val spanishCollator = strikers.sortedWith(Comparator { s1, s2 ->
Collator.getInstance(Locale("es", "ES")).compare(s1,s2)
})
答案 1 :(得分:2)
Collator
类实现了Comparator
接口,因此您可以使用它来比较名称,如下所示:
strikers.sortedWith(compareBy(spanishCollator) { it.name })
这里我们将其用作compareBy
函数重载的比较器参数,它同时使用值选择器{ it.name }
和比较器spanishCollator
来比较这些值。