public static boolean startsWithIgnoreCase(String str, String prefix) {
        if (str == null || prefix == null || prefix.length() > str.length()) {
            return false;
        }

        final char[] inputCharArray = str.toCharArray();
        final char[] prefixCharArray = prefix.toCharArray();
        for (int i = 0; i < prefixCharArray.length; i++) {
            if (!equalsIgnoreCase(prefixCharArray[i], inputCharArray[i])) {
                return false;
            }
        }

        return true;
    }