按字典顺序比较两个可能为空的Java字符串

0xbe5077ed

是否存在一个JDK方法,或者在一个或一个(或两者都存在,或两者都不存在)的情况下Comparator,将按字典顺序比较两个字符串A进行比较B ABnull

我不太在乎null值是顺序中的第一还是最后。

请注意,我不是要寻找Objects#equals(Object a, Object b)我正在寻找具有以下原型的JDK方法:

public int compare(String a, String b) ...

或者,也可以按照以下方式使用JDK类:

public class StringComparatorWithNulls implements Comparator<String> {
    @Override
    public int compareTo(String a, String b) {
        if (null == a) {
            return null == b ? 0 : -1;
        } else if (null == b) {
            return 1;
        } else {
            return a.compareTo(b);
        }
    }
}

如果JDK中没有任何东西可以做到这一点,那么广泛使用的开源库中的东西也可以做到。

dimo414

番石榴提供了非常有用的Ordering类(更多信息)。它具有流畅的界面,并且具有扩展性Comparator,因此您可以在使用的任何地方使用它Comparator

Comparator<String> nullSafeComparator = Ordering.<String>natural().nullsLast();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章