Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查扫描仪中是否按下了enter键?_Java_Java.util.scanner_Enter - Fatal编程技术网

Java 如何检查扫描仪中是否按下了enter键?

Java 如何检查扫描仪中是否按下了enter键?,java,java.util.scanner,enter,Java,Java.util.scanner,Enter,首先,我尝试: while (!(in.nextLine().equals(""))) arrayList.add(in.nextInt()); while (in.hasNextint()) arrayList.add(in.nextInt()); while (in.nextLine() != null) arrayList.add(in.nextInt()); 这对我来说一点也不好。相反,我尝试: while (!(in.nextLine().equals(

首先,我尝试:

while (!(in.nextLine().equals("")))
    arrayList.add(in.nextInt());
while (in.hasNextint())
    arrayList.add(in.nextInt());
while (in.nextLine() != null) 
    arrayList.add(in.nextInt());
这对我来说一点也不好。相反,我尝试:

while (!(in.nextLine().equals("")))
    arrayList.add(in.nextInt());
while (in.hasNextint())
    arrayList.add(in.nextInt());
while (in.nextLine() != null) 
    arrayList.add(in.nextInt());
基本上,我用空格分隔数字,然后输入一些字母,然后按enter键。这在IDE中非常有效。但是,如果我尝试使用命令提示符编译并运行它,它会在我面前抛出一个错误:InputMissatchException。最后,我尝试:

while (!(in.nextLine().equals("")))
    arrayList.add(in.nextInt());
while (in.hasNextint())
    arrayList.add(in.nextInt());
while (in.nextLine() != null) 
    arrayList.add(in.nextInt());

这不管用(!)有什么想法吗?

对于键盘,您需要一个

keyListener
你可以在课堂上这样做 (我指的是与您的类同名的void)例如:

public Classname(){
    //stuff
    window.addKeyListener(new KeyAdapter(){
//For every time the specific key is being pressed
        public void keyPressed(KeyEvent e){
            KeyCode = e.getKeyCode();
                switch (KeyCode) {
                case KeyEvent.VK_SPACE: 
                    //stuff
                    break;
                case KeyEvent.VK_H:
                    //stuff
                    break;

                }
            }
        }
//For every time the specific key is being released
public void keyReleased(KeyEvent e){
            switch (e.getKeyCode()) {
            case KeyEvent.VK_LEFT: //stuff
 break;
            case KeyEvent.VK_RIGHT: //stuff
   break;

        }
    });

}
而且,我认为这是一个公众问题

keyTyped(KeyEvent e)
你可以使用的空白


如果不通过评论让我知道,希望这能解决你的问题。:)

你不需要检查这个。如果您从文件或终端读取数据,“回车键”将被按下(至少是隐喻性的),否则您的扫描仪将无法获得输入并等待输入。如果,OTOH,你在一个字符串或类似的东西上创建了扫描器,这个字符串就是输入,就这样。按下任何键都不会改变此处的任何内容。

此异常发生在哪一行?我们可以看一个完整的(小)节目来展示这一点吗。你给这个程序的输入加上必须提到的