当前位置: 首页 > 面试题库 >

使用扫描仪的Java输入键已按下

佟英武
2023-03-14
问题内容

我正在使用Java进行编程。
我正在尝试编写可识别用户是否在基于 控制台的程序中 按Enter键的代码

我如何使用Java做到这一点。有人告诉我,可以使用“扫描仪”或缓冲输入阅读器完成此操作。我不了解(或不知道如何使用)缓冲输入阅读器。

我尝试使用扫描仪执行此操作,但在按Enter键两次后,程序终止,并且不起作用

    Scanner readinput = new Scanner(System.in);

    String enterkey = "Hola";
    System.out.print(enterkey);


    enterkey = readinput.nextLine();
     System.out.print(enterkey);

    if(enterkey == ""){

        System.out.println("It works!");

谢谢

-编辑-以下代码使用equals字符串方法代替==

    Scanner readinput = new Scanner(System.in);

    String enterkey = "Hola";
    System.out.print(enterkey);


    enterkey = readinput.nextLine();
     System.out.print(enterkey);

    if(enterkey.equals("")){

        System.out.println("It works!");

如何做到这一点?使用缓冲输入阅读器进行此操作的优点是什么?


问题答案:

这可以使用java.util.Scanner进行工作,并且需要多次“输入”击键:

    Scanner scanner = new Scanner(System.in);
    String readString = scanner.nextLine();
    while(readString!=null) {
        System.out.println(readString);

        if (readString.isEmpty()) {
            System.out.println("Read Enter Key.");
        }

        if (scanner.hasNextLine()) {
            readString = scanner.nextLine();
        } else {
            readString = null;
        }
    }

分解:

Scanner scanner = new Scanner(System.in);
String readString = scanner.nextLine();

这些行初始化Scanner从标准输入流(键盘)读取的新行,并从中读取一行。

    while(readString!=null) {
        System.out.println(readString);

当扫描仪仍在返回非空数据时,将每一行打印到屏幕上。

        if (readString.isEmpty()) {
            System.out.println("Read Enter Key.");
        }

如果输入提供了“
enter”(或return或其他键)键,则该nextLine()方法将返回一个空字符串;否则,该方法将返回一个空字符串。通过检查字符串是否为空,我们可以确定是否按下了该键。此处显示了文本
Read Enter Key ,但是您可以在此处执行所需的任何操作。

        if (scanner.hasNextLine()) {
            readString = scanner.nextLine();
        } else {
            readString = null;
        }

最后,在打印内容和/或按“
Enter”键后执行了某些操作之后,我们检查扫描仪是否还有另一行;对于标准输入流,此方法将“阻塞”,直到关闭流,结束程序执行或提供其他输入为止。



 类似资料:
  • 我正在用Java编程 我正在尝试编写代码,以识别用户是否在基于控制台的程序中按enter键。 我如何使用java做到这一点。有人告诉我,这可以使用Scanner或缓冲输入阅读器来完成。我不明白(或不知道如何使用)缓冲输入阅读器。 我试着用scanner来做这件事,但按了两次enter键后,程序终止,无法工作 谢啦 --编辑--以下代码使用字符串的方法而不是 如何做到这一点,使用缓冲输入读取器的好处

  • 问题内容: 对于Java练习,我试图创建一个程序,该程序从键盘读取整数,直到输入负数为止。 并打印整数的最大值和最小值,而忽略负数。 一旦运行,是否可以在同一程序中进行连续输入?我必须每次都继续运行该程序以输入数字。 任何帮助,将不胜感激 这是我的代码的一部分-它可以工作,但是我认为有一种更简单的方法可以执行我想要的操作,但不确定如何操作! 问题答案:

  • 对于java实践,我正在尝试创建一个程序,从键盘读取整数,直到输入负数。 它打印整数的最大值和最小值,忽略负数。 是否有一种方法可以在同一个程序运行后继续输入?每次输入一个数字,我都要继续运行程序。 任何帮助将不胜感激 这是我的代码的一部分-它可以工作,但我认为有一种更简单的方法可以做我想做的事情,但不确定如何做!

  • 对于作业,我必须编写以下代码: 当我尝试编译它时,它在命令提示符下给了我3个错误,说“无法解析符号,符号:类扫描仪,位置:类单词,扫描仪用户输入=新扫描仪(System.in)”。我不确定错误在哪里。我应该使用BufferedReader作为输入吗?

  • 问题内容: 我正在尝试让扫描仪在循环中进行输入。一旦用户想要完成操作,他就可以退出此循环。我尝试了许多不同的方法来执行此操作,但始终存在一些问题。这是代码: 上面代码的问题(在我尝试的其他方法上也会发生)是,当用户键入 Y时 ,将跳过名字的第一个输入,并跳转到姓氏。如果用户键入 N, 则循环将正确停止。有人可以解释发生这种情况的原因,以及如何克服使用课堂的问题? ps:执行类似的操作,将导致循环终

  • 我正在尝试通过单行输入检索用户输入:例如,使用扫描仪分隔符为Comma5,6,4,8,9。如何使用这种类型的输入检索任意数量的整数?也就是说,不必询问用户希望输入多少个整数。下面是我一直在使用的代码,但是当我想中断时,不能中断while循环。请注意,我保留System.Out以跟踪程序当前运行的位置。令人困惑的是,我可以以这种格式获得用户输入,但程序停止并再次要求用户输入,然后如果输入是一个整数,