如何在我的场景中使Java检测按键?

时间:2017-09-27 01:25:28

标签: java arrays list keypress

我正在为学校的项目编写一个程序。该项目要求我为宠物医院创建宠物记录。我应该创建一个宠物主人(最多30个所有者)的名单,包括他们的名字,姓氏,电子邮件和电话,以及每个所有者的阵列宠物(每个所有者的宠物最多为5)。但是,用户可以创建少于30个所有者的列表。我遇到的问题是我想创建代码,用户可以按下转义键来停止外部循环,当他们不需要添加任何所有者时,它会询问他们的所有者信息。此外,它说,“System.out.println(”按Enter键添加另一个所有者或Esc完成列表。“);”它在另一个循环中,所以如果用户点击了一个不正确的键,它将循环询问他们是否要停止添加他的列表(直到他们点击esc或输入)。 (注意:下面的代码不是我的整个程序,我只需要一个特定部分的帮助。我将if语句留空,因为这是我的按键代码所在的位置。)。

public class Runner
{
   public static void main(String[]args)
   {
     while(i <= 30)
     {
      System.out.println(i + ". " + "Enter the owner's first name.");
      String first = scan.nextLine();
      System.out.println(i + ". " + "Enter the owner's last name.");
      String last = scan.nextLine();
      System.out.println(i + ". " + "Enter the owner's email address.");
      String emailAdd = scan.nextLine();
      System.out.println(i + ". " + "Enter the owner's phone number.");
      String phone = scan.nextLine();
      Owner owner = new Owner(first, last, emailAdd, phone);
      int j = 1;
      while(j > 0)
        {
           System.out.println("Press enter to add another owner or Esc to 
           finish list.");
           if ()
           {

           }
           if ()
           {

           }
           j++;
        }


     list.add(owner.toString());

     i+=1;
       }
  System.out.println(list);
    }
}

1 个答案:

答案 0 :(得分:0)

由于Java仅使用控制台,因此没有本地方法来检测单个按键...任何输入必须以&#34;输入&#34;实际上是由该计划采取。

因此,要模拟检测输入按键,您可以执行以下操作:

if (scan.nextLine().isEmpty()) 
    // do stuff

因为我们知道一行总是意味着按下了回车键,如果字符串为空,则表示只保留回车键。

对于ESC键,如果必须使用第三方库,则应使用第三方库,否则,您可以让用户实际写入&#34; ESC&#34;或者您定义的其他一些关键词作为输入。