1、使用Apache Commons的equals()实现字符串比较
StringUtils
类的equals()
方法是String
类方法equals()
的增强版,它会处理null
值:
assertThat(StringUtils.equals(null, null))
.isTrue();
assertThat(StringUtils.equals(null, "equals method"))
.isFalse();
assertThat(StringUtils.equals("equals method", "equals method"))
.isTrue();
assertThat(StringUtils.equals("equals method", "EQUALS METHOD"))
.isFalse();
2、使用Apache Commons的equalsIgnoreCase()实现字符串比较
StringUtils
的equalsIgnoreCase()
方法返回一个布尔值。它与equals()
类似,只是忽略了字符串中的字符大小写:
assertThat(StringUtils.equalsIgnoreCase("equals method", "equals method"))
.isTrue();
assertThat(StringUtils.equalsIgnoreCase("equals method", "EQUALS METHOD"))
.isTrue();
3、使用Apache Commons的equalsAny()和equalsAnyIgnoreCase()进行字符串比较
equalsAny()
方法的第一个参数是一个字符串,后面是可以是多个参数,其中任何一个与第一个字符串大小写敏感匹配,则该方法返回true
。否则,返回false
:
assertThat(StringUtils.equalsAny(null, null, null))
.isTrue();
assertThat(StringUtils.equalsAny("equals any", "equals any", "any"))
.isTrue();
assertThat(StringUtils.equalsAny("equals any", null, "equals any"))
.isTrue();
assertThat(StringUtils.equalsAny(null, "equals", "any"))
.isFalse();
assertThat(StringUtils.equalsAny("equals any", "EQUALS ANY", "ANY"))
.isFalse();
equalsAnyIgnoreCase()
与equalsAny()
方法类似,只是忽略了大小写:
assertThat(StringUtils.equalsAnyIgnoreCase("ignore case", "IGNORE CASE", "any")).isTrue();
4、使用Apache Commons的compare()和compareIgnoreCase()实现
StringUtils
类中的compare()
方法相对于String
类的compareTo()
方法,能更好的处理null
值,它通过将null
小于非null
来处理null
值。两个null
值被认为是相等的。
此外,这个方法可以用来排序一个字符串列表与null
:
assertThat(StringUtils.compare(null, null))
.isEqualTo(0);
assertThat(StringUtils.compare(null, "abc"))
.isEqualTo(-1);
assertThat(StringUtils.compare("abc", "bbc"))
.isEqualTo(-1);
assertThat(StringUtils.compare("bbc", "abc"))
.isEqualTo(1);
与compareIgnoreCase()
方法的类似,只是它忽略了大小写:
assertThat(StringUtils.compareIgnoreCase("Abc", "bbc"))
.isEqualTo(-1);
assertThat(StringUtils.compareIgnoreCase("bbc", "ABC"))
.isEqualTo(1);
assertThat(StringUtils.compareIgnoreCase("abc", "ABC"))
.isEqualTo(0);
两个方法也可以与一个null
值选项一起使用。第三个布尔参数,它决定null
值是否应被认为是更少的。
如果nullIsLess
为true
,则null值低于另一个字符串;如果nullIsLess
为false
,则空值高于另一个字符串。例如:
assertThat(StringUtils.compare(null, "abc", true))
.isEqualTo(-1);
assertThat(StringUtils.compare(null, "abc", false))
.isEqualTo(1);
带有第三个布尔参数的compareIgnoreCase()
方法与上面方法类似,只是忽略了大小写。
相关文档:Java使用==、equals()或compareTo()等方法进行字符串比较