在scala中对本地化的字符串列表进行排序

时间:2014-07-21 07:54:37

标签: string scala sorting localization internationalization

我想对字符串列表进行排序。我知道scala并不难,但我的问题是,我需要用不同语言对列表进行排序。例如,我知道我可以很容易地用英语对字符串进行排序。但是俄语或罗马语呢? 在scala中以多种语言排序字符串的最佳做法是什么? scala排序实现是否仅支持英文字母?

在java中我会做这样的事情:

Collator coll = Collator.getInstance(locale);
coll.setStrength(Collator.PRIMARY)
Collections.sort(words, coll);

我希望有人可以帮助我。在此先感谢Nico。

1 个答案:

答案 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)