このコード ブロックにバグがあります。デバッガーは、原因がこのコード行であることを示唆しています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)*