如何检查扫描仪中是否按下了回车键?

时间:2013-11-17 23:54:02

标签: java java.util.scanner enter

首先,我试过了:

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

这对我来说根本不算好。相反,我试过了:

while (in.hasNextint())
    arrayList.add(in.nextInt());

基本上我输入用空格分隔的数字,然后输入一些字母并按回车键。这在IDE中完美运行。但是,如果我尝试使用命令提示符编译并运行它,它会在我的面部抛出一个错误:InputMismatchException。最后,我试过了:

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

这不起作用(!)任何想法?

2 个答案:

答案 0 :(得分:1)

对于键盘,你需要一个

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)

无法使用。

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

答案 1 :(得分:0)

您无需检查此内容。如果您从文件或终端读取,则“按下回车键”(至少是隐喻),否则您的扫描仪无法输入并等待它。如果,OTOH,你在字符串或类似的东西上创建扫描器,那个字符串就是输入,那就是它。没有按键会改变任何方式。