title: what is the difference between equals() and equalsIgnoreCase() in StringUtils of commons-lang3-3.6.jar?
body: <p>when i use this two methods, i want to know the difference,and how did equalsIgnoreCase() ignore the case of two String. But i even do not find the difference of the source code,only the order of code is different.
  who can help me analyze the difference of the source code,and how did it ignore case? thanks.
  here is the source code:</p>
  
  <pre><code>public static boolean equals(CharSequence cs1, CharSequence cs2) {
      if (cs1 == cs2) {
          return true;
      } else if (cs1 != null &amp;&amp; cs2 != null) {
          if (cs1.length() != cs2.length()) {
              return false;
          } else {
              return cs1 instanceof String &amp;&amp; cs2 instanceof String ? cs1.equals(cs2) : CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length());
          }
      } else {
          return false;
      }
  }
  
  public static boolean equalsIgnoreCase(CharSequence str1, CharSequence str2) {
      if (str1 != null &amp;&amp; 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;
      }
  }
  </code></pre>