StringUtils.equalsIgnoreCase方法比较两个字符串是否相等并且忽略大小写 (转载)

Java工具类StringUtils的equals、equalsIgnoreCase、equalsAny、equalsAnyIgnoreCase方法详解

 

1.equals方法比较两个字符串是否相等

    public static boolean equals(CharSequence cs1, CharSequence cs2)
    {
      if (cs1 == cs2) {
        return true;
      }
      if ((cs1 == null) || (cs2 == null)) {
        return false;
      }
      if (cs1.length() != cs2.length()) {
        return false;
      }
      if (((cs1 instanceof String)) && ((cs2 instanceof String))) {
        return cs1.equals(cs2);
      }
      return CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length());
    }

分析:源码中首先用==比较两个字符串是否相等,双等号是比较两个对象的内存地址是否相同或者基本变量是否相等,因为字符串是存在于常量池中的所以使用cs1 == cs2来比较两个字符串是否相等;

2.equalsIgnoreCase方法比较两个字符串是否相等并且忽略大小写

    public static boolean equalsIgnoreCase(CharSequence str1, CharSequence str2)
    {
      if ((str1 == null) || (str2 == null))
        return str1 == str2;
      if (str1 == str2)
        return true;
      if (str1.length() != str2.length()) {
        return false;
      }
      return CharSequenceUtils.regionMatches(str1, true, 0, str2, 0, str1.length());
    }

3.equalsAny方法比较字符串与给定的数组中的任何一个字符串相等就返回true

    public static boolean equalsAny(CharSequence string, CharSequence... searchStrings)
    {
      if (ArrayUtils.isNotEmpty(searchStrings)) {
        for (CharSequence next : searchStrings) {
          if (equals(string, next)) {
            return true;
          }
        }
      }
      return false;
    }

4.equalsAnyIgnoreCase方法比较字符串与给定的数组中任何一个字符串相等就返回true

    public static boolean equalsAnyIgnoreCase(CharSequence string, CharSequence... searchStrings)
    {
      if (ArrayUtils.isNotEmpty(searchStrings)) {
        for (CharSequence next : searchStrings) {
          if (equalsIgnoreCase(string, next)) {
            return true;
          }
        }
      }
      return false;
    }
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值