このコード ブロックにバグがあります。デバッガーは、原因がこのコード行であることを示唆していますchar chr = getSecretWord.charAt(i);
userInputこのコードが行うことは、との間の一致を探すことですsecretWord。secretWordfor loopの文字の長さを 1 つずつ調べる必要があり、一致する文字があれば true を返します。そうでない場合は false を返します...しかし、単に false を返すと想定されると、プログラムがクラッシュします...この行で何かが起こっていると思いますが、正確にはわかりませんgetSecretWord.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;
}
補足として、このコードで行ったことは正しいですか? getSecretWorld() メソッドを文字列に割り当てて、文字列メソッドを使用できるようにしlength()ますか
String getSecretWord = getSecretWord();
for (int i = 0; i <= getSecretWord.length();i++)
デバッグ コード:
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)*