Índice Array Fora da Exceção de Limites (Java)

Aqui está o meu código:

public class countChar {

    public static void main(String[] args) {
        int i;
        String userInput = new String();

        userInput = Input.getString("Please enter a sentence");

        int[] total = totalChars(userInput.toLowerCase());

        for (i = 0; i < total.length; i++);
        {
            if (total[i] != 0) {
                System.out.println("Letter" + (char) ('a' + i) + " count =" + total[i]);
            }
        }
    }

    public static int[] totalChars(String userInput) {
        int[] total = new int[26];
        int i;
        for (i = 0; i < userInput.length(); i++) {
            if (Character.isLetter(userInput.charAt(i))) {
                total[userInput.charAt(i) - 'a']++;
            }
        }
        return total;
    }
}

O objetivo do programa é pedir ao usuário uma string e, em seguida, contar o número de vezes que cada caractere é usado na string.

Quando vou compilar o programa, tudo funciona bem. Quando executo o programa, consigo inserir uma string na caixa pop-up, mas depois de enviar a string e pressionar OK, recebo um erro, dizendo

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 26
at countChar.main(countChar.java:14)

Eu não estou completamente certo de qual é o problema ou como consertá-lo.

questionAnswers(5)

yourAnswerToTheQuestion