【发布时间】:2020-02-20 11:13:21
【问题描述】:
名单是:Arrays.asList("Za", "ab", "AB", "Sa", "1ab", "Ab", "!Ab");
如果我使用stream().sorted(),那么顺序是:!Ab 1ab AB Ab Za ab --> Za 不应该在 ab 前面。
如果我使用sorted(String.CASE_INSENSITIVE_ORDER)那么顺序是!Ab 1ab ab AB Ab Za --> 这次AB在ab后面。
有没有什么办法可以结合这两个规则,所以我们的列表按字母顺序排序并且大写大于小写?
添加示例:1AB - A0B - AbD - aBD - abd1 - ZAB
按字母顺序排序(Z 永远不会在 a 前面)并且数字 > 大写 > 小写 (AbD > aBD)
【问题讨论】:
-
是的,通过创建您自己的
Comparator。
标签: java sorting java-stream