首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集合排序

集合排序
EN

Stack Overflow用户
提问于 2013-09-18 10:48:36
回答 2查看 137关注 0票数 0

在对JTable中的一些数据进行排序时,当JTable中存在一些德语语言时,我遇到了一个问题。

我给出了一个我尝试过的示例代码,以及正确运行我的应用程序所需的预期结果。

代码:

代码语言:javascript
复制
Vector<String> vec = new Vector<String>();

vec.add("ba~~~");
vec.add("ba~ab~~");
vec.add("ÇÊÕÝ");
vec.add("ÇÊÕÝ~ÂÉĒÐ~~");

System.out.println("Unsorted: "+vec);
Collections.sort(vec);
System.out.println("Sorted: "+vec);

输出:未排序: ba~,ba~ab,,Ē~~

排序: ba~ab,ba~,Ð,Ē~

我所需的输出:未排序的: ba~,ba~ab,ĒĒ~~

排序: ba~ab,ba~,Ē~~,

从输出中我看到字符串'ba~ab‘出现在'ba~’之前,这在字典上是正确的。但是,我不明白为什么‘Ē~’之后出现‘“。我的要求是获得我的应用程序正确工作所需的输出(正如我前面提到的)。

在比较特殊语言时,我是否遗漏了我需要提供的任何东西。

任何有用的帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2013-09-18 10:53:36

您可以使用内置排序器(Collator.getInstance(Locale.XXX))并实现compareTo,或者如果它不是内置排序规则,则需要使用RuleBasedCollator构建自己的排序规则,然后进行排序。有关基于规则的排序规则的详细信息,请参阅:http://docs.oracle.com/javase/7/docs/api/java/text/RuleBasedCollator.html

票数 0
EN

Stack Overflow用户

发布于 2013-09-19 07:11:25

非常感谢,先生。最终我发现~(倾斜)性格是罪魁祸首。为了比较这些集合,如果我使用扩展的ASCII字符‘a’与最大的ASCII值255进行比较,它就像一个魅力一样解决了这个问题。

我从http://www.ascii-code.com/找到了扩展的ASCII字符

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18870192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档