当前位置: 首页 > 知识库问答 >
问题:

将扫描器对象连接到System.In对象并使用扫描器方法

秦联
2023-03-14
// this program will use scanner objects and system inputs
public class Scanner
{
    public static void main(String[] args)
    {
        int number;  
             // declares integer "number"

        Scanner keyboard = new Scanner(System.in); 
  //-------------------------------------------------------------------
  // declares referance variable (Scanner class) "keyboard", creates       
  // Scanner object that 
  // reads input from System.in, then assigns address of Scanner object 
  // to the reference variable "keyboard"
  //-------------------------------------------------------------------     
        System.out.println("Enter an integer value: ");
             // displays text 
        number = keyboard.nextInt();
            // assigns keyboard input to "number" as integer value

        System.out.println("You entered the integer " + number);
           // displays "number" to see if the program worked
    }
}

当我尝试使用javac在windows命令提示符中编译程序时,我得到以下错误消息:

error: constructor Scanner in class Scanner
cannot be applied to given types;

Scanner keyboard = new Scanner(System.in);

required: no arguments
found: InputStream
reason: actual and formal argument lists differ in length

error: cannot find symbol
            number = keyboard.nextInt();
                             ^
symbol:   method nextInt()
location: variable keyboard of type Scanner
2 errors

我做错了什么?

共有1个答案

壤驷德寿
2023-03-14

有一个命名冲突。从Java语言的角度来看,您必须使scanner类唯一,有两个选项可以做到这一点:

  • 重命名类
    • 改为其他名称,以便不再发生命名冲突

    使scanner类明确

    public static void main(String[] args)
    {
        int number;
        java.util.Scanner keyboard = new java.util.Scanner(System.in);
    
        System.out.println("Enter an integer value: ");
    
        number = keyboard.nextInt();
        System.out.println("You entered the integer " + number);
    }
    

 类似资料:
  • 问题内容: 我真的试图通过线程找到答案,但仍然希望能得到一些反馈。 我认为下面的代码风格不好,但是我不知道为什么在输入数字后会把我射杀 ,因为我为两个方法创建了两个Scanner对象,并且我应该能够开始一个新的输入。而且,如果我删除了inputAndPrintNumber()中的内容,它将正常工作并正确编译。我真的希望知道如果我仍然使用两个Scanner obj并且不删除(如果可能的话)为什么以及

  • 我有一个链接到中。现在,在使用了

  • 这是我程序的主要方法。当调用nextLine()函数时,扫描器解析变量L而不是space时,我遇到了一个问题。不过,nextInt()可以按照预期工作。我的程序在试图用integer.parseint()函数解析空字符串时崩溃了。 第一个输入是指定将要进行的行数的整数,下面的输入是空格分隔的整数。 堆栈跟踪如下:

  • 这让我很费解。我正在试图理解如何解决Java无法识别我的“settitle”方法存在于第一个“song”之后的问题。这是一个音乐应用程序。它还有另外两个类。我们将非常感谢所有的帮助。 编辑:添加歌曲类。

  • 我正在为一个CS项目做一个游戏,其中一个要求是只有一个扫描仪为人类输入。如果我创建一个抽象类“Player”,它有一个扫描器对象,并创建两个扩展“Player”的“人类”类,它们是各自有自己的扫描器,还是共享“Player”扫描器?另外,当我结束游戏时如何关闭扫描仪?

  • 我正在尝试用javaoop编写一个程序,在这个程序中我主要创建一些人(每个人都有姓名、年龄、身份:是否受雇)。 我想按姓名搜索这些人,并显示所有细节。 例如,如果有一个叫约翰的人,我通过名字找到了他,我想列出所有的细节(状态、年龄等等)。 我尝试在Person类中实现这个方法。< br >我不知道创建一个包含所有人和姓名的地图,然后在其中进行搜索是否更好。 以下是我的代码: 人员类: 雇佣类别: