【发布时间】:2014-12-16 14:47:04
【问题描述】:
我想按字母顺序对 Java 字符串进行排序。排序应该类似于 Oracle SQL order by。我尝试使用 Java Collator,但它优先考虑小写字母而不是大写字母。非英文字母也有问题...
例如:
select * from TABLE1 order by COLUMN1;
按以下顺序返回字符串:A、a、Á、á、Ä、ä、B、b、C、C(对我来说是正确的)
Collections.sort(strings, Collator.getInstance());
按如下顺序排列字符串:a, A, á, ä, Ä, Á, b, B, C, C(á, ä, Ä, Á 顺序有问题)
(两种情况下的语言环境相同)
我不想输入整个字母表,因为我可能会忘记一些特殊的字母。 Out 应用程序将被来自许多欧洲国家的许多不同的人使用。
【问题讨论】:
-
好吧,预言机的
ORDER BYgives a different output than the one you provided。 -
可能有点重量级,但icu可能有你想要的?否则,呃...制作您自己的基于规则的整理器? :p
-
另外,为什么你希望它们以完全相同的顺序排列?为什么这是一个要求?
-
@BackSlash 如果我将 NLS_SORT 设置为 GERMAN_CI 或 GENERIC_M_CI,我可以重现此问题。
标签: java sql oracle sorting sql-order-by