欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

equals( )方法与equalsIgnoreCase( )方法的比较

程序员文章站 2022-04-16 08:31:03
...

equals是重写object的方法,而
equalsIgnoreCase是String自己定义的方法,可以在org.apache.commons.lang3.StringUtils中找到
前者用于比较两个对象是否相等,而后者用于比较字符串忽略大小写的情况下是否相等

equals( )方法与equalsIgnoreCase( )方法的比较
commons-lang3-3.6.,注意,是在commons-lang3-3.6.

equals

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

equalsIgnoreCase

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

区别在 regionMatches(final CharSequence cs, final boolean ignoreCase, final int thisStart) !!!!!第二个参数表示是否区不分大小写

equals为false,equalsIgnoreCase为true

equals( )方法与equalsIgnoreCase( )方法的比较

String.equals()对大小写敏感,而String.equalsIgnoreCase()忽略大小写