Java: do zawieszania pętli przy użyciu metody łańcuchowej charAt

Mam błąd w tym bloku kodu. Debuger sugeruje, że przyczyną jest ta linia koduchar chr = getSecretWord.charAt(i);

Tym kodem jest szukanie dopasowania międzyuserInput isecretWord. Mamfor loop aby przejść przez długość liter SecretWord jeden po drugim, i czy istnieje pasująca do litery litera return true. Jeśli nie, zwróć false ... ale program zawiesza się, gdy przypuszcza się, że po prostu zwraca false ... Domyślam się, że jest to coś z tą linią, ale nie wiem dokładnie, cogetSecretWord.charAt(i);

    private boolean isMatchingSecretWord(String userInput)
{
    String secretWord = "";
    String getSecretWord = getSecretWord();
    for (int i = 0; i <= getSecretWord.length();i++)
        {
        char chr = getSecretWord.charAt(i);
        secretWord = ""+chr;

        if (secretWord.equals(userInput))
        {
            println("is true");
            return true;
        }
    }
    return false;
}

Na marginesie, czy to, co zrobiłem z tym kodem, jest poprawne, przypisując metodę getSecretWorld () do łańcucha, aby móc użyć metody ciągówlength()?

String getSecretWord = getSecretWord();

for (int i = 0; i <= getSecretWord.length();i++)

Kod debugowania:

Exception in thread "Thread-4" java.lang.StringIndexOutOfBoundsException: String index out of range: 4    
    at java.lang.String.charAt(String.java:686)    
    at Hangman.isMatchingSecretWord(Hangman.java:49)    
    at Hangman.userInput(Hangman.java:34)    
    at Hangman.run(Hangman.java:20)*

questionAnswers(2)

yourAnswerToTheQuestion