Java 比较法中数字和字符顺序的影响
我有一个Wicket web应用程序,它按以下顺序对表行进行排序: 升序:Java 比较法中数字和字符顺序的影响,java,sorting,Java,Sorting,我有一个Wicket web应用程序,它按以下顺序对表行进行排序: 升序: 第一个字符(A-Z) 然后是数字(1-9) 现在我正在编写一个webunit测试来测试排序机制,但它似乎可以切换字符和数字的顺序,如: 升序: 第一组数字(1-9) 然后是字符(A-Z) 因此,当按升序排序时,此代码将失败,并遇到两个条目: ZZZ 111 我的简化排序代码: protected int compare(String val1, String val2) { return
- 第一个字符(A-Z)
- 然后是数字(1-9)
- 第一组数字(1-9)
- 然后是字符(A-Z)
- ZZZ
- 111
protected int compare(String val1, String val2) {
return val1.compareTo(val2);
}
告诉我的测试代码测试顺序的“java方式”是什么,就像我的web应用程序生成顺序一样?
可能类似于Collator
?我更喜欢JRE解决方案,而不是自编的比较器,而不是第三方库。您可以尝试使用如下方法:
String rule = "<a,A<b,B<c,C<[...]<'1'<'2'<'3'<'4'[...]";
RuleBasedCollator collator = new RuleBasedCollator(rule);
return collator.compare(val1,val2);
String rule=“我不知道内置的JRE解决方案。编写自己的Comparator
或包装字符串是自定义的Comparable
类可能是您最好的选择。谢谢,这很有效。您能编辑规则并删除“a”后的第二个逗号吗?