【问题标题】:Java Hangman code, char arrayJava Hangman 代码,字符数组
【发布时间】:2014-03-14 16:39:03
【问题描述】:

如果有人能指出这段代码中的问题,我会很高兴 :) 这只是我遇到问题的方法..

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 包含“ - - - - - ”作为单词的长度。如果输入正确,此方法应该用字母替换 _。 “字母”是键盘输入。

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

任何帮助将不胜感激 (我希望我的问题措辞正确..)

【问题讨论】:

  • 如果 checkArray 包含 "-----" 你将如何测试该字母是否在单词中?
  • 天哪!我的逻辑有缺陷。我需要原始数组。谢谢!
  • 如果checkArray[i] 包含"-----",则if(checkArray[i] == letter) 将返回true 的唯一时间是letter 等于-,因此checkArray 将保持原来的状态

标签: java arrays char


【解决方案1】:

如果我理解正确,你的函数需要一个额外的参数(包含这个词)。

说字符串词

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您正在比较 checkArray[i] == letter 和 if true 用字母替换 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;
      }
      

      【讨论】:

        猜你喜欢
        • 2013-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多