繁体   English   中英

如何检查扫描仪中是否已按Enter键?

[英]How do I check if the enter key has been pressed in a Scanner?

首先,我尝试:

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

这对我来说根本无法解决。 相反,我尝试了:

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

基本上,我输入用空格隔开的数字,然后输入一些字母,然后按Enter。 这在IDE中非常有效。 但是,如果我尝试使用命令提示符进行编译和运行,则会在我的面前抛出错误:InputMismatchException。 最后,我尝试了:

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

那没有用(!)任何想法?

对于键盘,您需要一个

keyListener

您可以在void类中执行此操作(我的意思是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,您是在字符串或类似的字符串上创建扫描程序的,则该字符串就是输入,仅此而已。 在这里,任何按键操作都不会改变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM