我想对字符串列表进行排序。我知道scala并不难,但我的问题是,我需要用不同语言对列表进行排序。例如,我知道我可以很容易地用英语对字符串进行排序。但是俄语或罗马语呢? 在scala中以多种语言排序字符串的最佳做法是什么? scala排序实现是否仅支持英文字母?
在java中我会做这样的事情:
Collator coll = Collator.getInstance(locale);
coll.setStrength(Collator.PRIMARY)
Collections.sort(words, coll);
我希望有人可以帮助我。在此先感谢Nico。
答案 0 :(得分:6)
这里没有什么不同:)。 Collator具有可比性,因此您将其转换为Ordering
,然后将其用于排序。
scala> val ord = Ordering.comparatorToOrdering(Collator.getInstance(Locale.FRENCH));
ord: scala.math.Ordering[Object] = scala.math.LowPriorityOrderingImplicits$$anon$7@759fad4
scala> Seq("deux","Bonsoir","Merci").sorted(ord)
res13: Seq[String] = List(Bonsoir, deux, Merci)