Java Hangman代码,char数组

时间:2014-03-14 16:39:03

标签: java arrays char

如果您有任何人可以在此代码中指出问题,我会很高兴:) 这只是我遇到问题的方法..

public static char[] checkMethod(char[] checkArray, char letter)
{
    boolean flag = false;

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

        if(checkArray[i] == letter)
        {
            checkArray[i] = letter;
            flag = true;
        }
    }

    if(flag == true)
        System.out.println("Good job!");
    else 
        System.out.println("Aww.. Try again");

    return checkArray;
}

目前checkArray包含&#34; - - - - - &#34;这个词的长度。如果输入正确,此方法应该用字母替换_。 &#39;信&#39;是键盘输入的。

现在我没有得到预期的输出,而是我得到了空白。似乎checkArray [i] =字母部分不起作用。我如何使其发挥作用?

任何帮助将不胜感激 (我希望我已正确地提出这个问题..)

3 个答案:

答案 0 :(得分:0)

你应该有2个数组:1个用空格填写,1个用实际单词检查。目前您正在检查空白数组,它永远不会==字母。

答案 1 :(得分:0)

你正在比较checkArray [i] == letter和if true,用letter替换checkArray [i],但它们已经相等。你需要传递你正在检查的词。

public static char[] checkMethod(char[] checkArray, char[] wordArray, char letter)
{
   boolean flag = false;

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

      if(wordArray[i] == letter)
      {
          checkArray[i] = letter;
          flag = true;
      }
   }

   if(flag == true)
       System.out.println("Good job!");
   else 
       System.out.println("Aww.. Try again");

   return checkArray;
}

答案 2 :(得分:0)

如果我理解正确,你需要一个额外的参数(持有这个词)到你的功能。

Say String word

if(word.charAt(i) == letter)
{
    checkArray[i] = letter;
    flag = true;
}