絞首刑執行人の宿題を書かなければなりません。char 配列を使用することは許可されておらず、String メソッドのみを使用して文字列自体を操作します。私が直面している問題は、文字列ビルダーで重複をチェックしようとしたときです。
これが私の絞首刑法です
public void playHangMan(Scanner guessWord)
{
int error = 6;
String letter;
boolean vali, dup;
displayHangman();// call displayHangman method
// get input, lower case input, and then validate in a loop
do
{
letter = guessWord.nextLine();
letter = lowerGuess(letter); // call lowerGuess method
vali = letter.matches("[a-z]");
dup = checkDup(letter); // call checkDup method
if(vali == false)
{
System.out.print("Please enter only a SINGLE letter: ");
}
else if(dup == true)
{
System.out.print("Duplicated letter, please enter another: ");
}
if(dup == false && vali == true)
{
this.guessAns.append(letter);
}
}
while(vali == false && dup == false);
}// end playHangman method
私の複製方法:
private boolean checkDup(String letter)
{
int i;
boolean dup = false;
// check guessAns StringBuilder for duplicate letters
for(i = 0; i <= this.guessAns.length() - 1 && dup == false; i++)
{
if(letter.equals(this.guessAns.charAt(i)))
{
dup = true;
}
}
if(dup == true)
{
return true;
}
else
{
return false;
}
}// end checkDup method
問題は、私の checkDup メソッドが重複を見つけられないことです。文字列ビルダーに文字 a を追加して、文字の値 a を入力しようとしましたが、まだうまくいきません。String を Char と比較しているのでletter.equals(this.guessAns.charAt(i))
、checkDup メソッドが重複を見つけられないのはなぜですか? 誰かがこれを回避する方法を説明できますか? どんな助けでも大歓迎です。