public final static boolean endsWithIgnoreCase(String str,String end){
  int strLength=str == null ? 0 : str.length();
  int endLength=end == null ? 0 : end.length();
  if (endLength > strLength)   return false;
  for (int i=1; i <= endLength; i++) {
    if (ScannerHelper.toLowerCase(end.charAt(endLength - i)) != ScannerHelper.toLowerCase(str.charAt(strLength - i)))     return false;
  }
  return true;
}

public final static boolean endsWithIgnoreCase ( String str , String end ) { int strLength = str == null ? 0 : str . length ( ) ; int endLength = end == null ? 0 : end . length ( ) ; if ( endLength > strLength ) return false ; for ( int i = 1 ; i <= endLength ; i ++ ) { if ( ScannerHelper . toLowerCase ( end . charAt ( endLength - i ) ) != ScannerHelper . toLowerCase ( str . charAt ( strLength - i ) ) ) return false ; } return true ; }
returns true iff str . tolowercase ( ) . endswith ( end . tolowercase ( ) ) implementation is not creating extra strings .
