import java.util.Scanner无效,因为它没有在包中命名类型

时间:2013-12-22 04:57:07

标签: java

每当我尝试运行我的hangman代码时,我都会收到错误。使用ready编程IDE,如果我点击运行它只是突出显示import java.util.Scanner语句并告诉我它无效。(import java.util.Scanner无效,因为它没有在包中命名类型。这正是它告诉我的)。  我是新手,所以如果有人能够纠正代码并将其作为回复发布,我将不胜感激:)谢谢。

package HangmanSummative;
    import  java.lang.System.out;
    import java.util.Scanner;

class Game
{
    public static void main (String[] args)
    {
    int LivesLeft;
    String LetterGuessed;
    String wordInput;
    char[] hiddenWord;
    char[] aOfWord;

    Scanner input = new Scanner (System.in);
    boolean isFound;
    int a;

    public Game ()
    {
        this.setLives (10);

        system.out.println (" Player one enter a word:");
        wordInput = input.nextline ();
        aOfWord = wordInput.toCharArray ();
        hiddenWord = new char [aOfWord.length];
        for (int j = 0 ; j < hiddenWord.length ; j++)
            hiddenWord [j] = '*';

        this.output ();

        while (LivesRemaining > 0)
        {
            system.out.println (" Choose a letter: ");
            LetterGuessed = input.nextLine ();

            this.checkForMatch (LetterGuessed);
            if (isFound == true)

                {
                    hiddenWord [a] = LetterGuessed.charAt (0);

                }
            else
            {
                system.out.println(" Not found.");
                this.reduceLives();

             }
             this.output();


          }
   }

public void setLives (int a)
{
    this.LivesRemaining = a;
}

public void reduceLives()
{
    LivesRemaining = LivesRemaining -1;
    system.out.println("Lives left:" + this.getLives());

}

public int getLives()
{
    return LivesRemaining;
}

public void output ()
{
    system.out.println("Lives left" + this.getLives ());
    system.out.println("Progress so far ");

    for (int i = 0; i <hiddenWord.length; i++)
    {
        system.out.print(hiddenWord[i] + "\n");
    }

}

public void checkForMatch(String l)
{

    for(int i=0; i< aOfWord.length; i++)
        { 
            if(l.charAt(0) == aOfWord[i])
            {   
                isFound=true;
                a = i;
                break;
             }
             else
             {  
                isFound = false;
             }
         }
   }
}
}

2 个答案:

答案 0 :(得分:1)

您的程序中存在大量编译错误。首先,您不能在其他方法中声明方法或构造函数。您的main方法似乎包含Game构造函数。这在语法上是不正确的。第二,gGet摆脱了这一行

import java.lang.System.out;

这是不正确的,因为outstatic成员。请记住,java.lang包始终是隐式导入的。你可以在技术上做到

import static java.lang.System.out;

如果你想做

out.println("whatever");

直接代替

System.out.println("whatever");

但你没有这样做,所以import是不必要的。

第三,它是System,而不是system

第四,它的Scanner#nextLine(),而不是Scanner#nextline(),就像你在这里一样

wordInput = input.nextline();

最后,没有任何名为LivesRemaining的实例变量在任何地方声明。

答案 1 :(得分:0)

您必须在任何地方使用System.out.println而不是system.out.println。 s应为大写。当您执行import static System.out时,可以直接使用out.println在代码中打印语句。这是代码中静态导入语句的真实用法。使用静态导入应该主要是避免,因为它会给读者带来困惑。尝试在需要的地方始终使用System.out.print