当A
或{{1}时,是否有JDK方法或Comparator
可以比较两个字符串B
和A
按字典顺序 (或两者,或两者都不)可能是B
?
我不太关心null
值是排在第一位还是最后一位。
请注意,我不是在寻找Objects#equals(Object a, Object b)
。我正在寻找一个带有以下原型的JDK方法:
null
或者,也可以是
行的JDK类public int compare(String a, String b) ...
如果JDK中没有任何内容可以执行此操作,那么广泛使用的开源库中的内容也可以。
答案 0 :(得分:4)
您可能正在寻找来自common-lang3:
的StringUtils或ObjectUtilshttps://commons.apache.org/proper/commons-lang/
使用public static boolean equals(CharSequence cs1,CharSequence cs2)
否则,如果您想与:
进行比较答案 1 :(得分:2)
Guava提供了非常有用的Ordering
类(more info)。它具有流畅的界面,并且扩展了Comparator
,因此您可以在任何使用Comparator
的地方使用它。
Comparator<String> nullSafeComparator = Ordering.<String>natural().nullsLast();
答案 2 :(得分:0)
字符串compareTo
完全相同,您可以为将调用此compareTo
函数的字符串添加空检查,以便它处理null
值 -
String s1 = "Hello";
String s2 = "bye";
System.out.println(s1.compareTo(s2));
>> -26
你的条件看起来像 -
if(s1 != null && s1.compareTo(s2) > 0)
此方法的返回值为int
,可解释如下: