在比较方法中影响数字和字符的顺序

时间:2015-07-02 07:26:32

标签: java sorting

我有一个Wicket Web应用程序,它按以下顺序对表行进行排序:

升序:

  • 第一个charachters(A-Z)
  • 然后是数字(1-9)

现在我正在编写一个webunit测试来测试排序机制,但它似乎改变了charachters和数字的顺序,如:

升序:

  • 第一个数字(1-9)
  • 然后是charachters(A-Z)

因此,当升序排序并且遇到两个条目时,此代码将失败:

  • ...
  • ZZZ
  • 111
  • ...

我简化的排序代码:

protected int compare(String val1, String val2) {
        return val1.compareTo(val2);
}

" java方式"告诉我的测试代码测试订单,就像我的Web应用程序产生的那样? 可能是Collator之类的东西?我希望JRE解决方案比第三方库上的自写Comparator更好。

1 个答案:

答案 0 :(得分:1)

你可以尝试使用这样的RuleBasedCollator

String rule = "<a,A<b,B<c,C<[...]<'1'<'2'<'3'<'4'[...]";
RuleBasedCollator collator = new RuleBasedCollator(rule);
return collator.compare(val1,val2);