gpt4 book ai didi

java - 如何让 Java 在我的场景中检测按键?

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:24 24 4
gpt4 key购买 nike

我正在为学校项目编写程序。该项目要求我为宠物医院创建宠物记录。我应该创建一个宠物主人列表(最多 30 个主人),其中包含他们的名字、姓氏、电子邮件和电话,以及每个主人的宠物数组(每个主人最多 5 只宠物)。但是,用户可以创建少于 30 个所有者的列表。我遇到的问题是我想编写代码,用户可以按转义键来停止外部 while 循环,当他们不需要添加更多所有者时,该循环会要求他们提供所有者信息。此外,它还显示“System.out.println(“按 Enter 键添加另一个所有者或按 Esc 键完成列表。”);”它处于另一个循环中,因此如果用户按了错误的键,它将循环询问他们是否要停止添加到列表中(直到他们按 esc 或 Enter)。 (注意:下面的代码不是我的整个程序,我只需要一个特定部分的帮助。我将 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);
}
}

最佳答案

由于 Java 仅使用控制台,因此没有本地方法来检测单个按键...任何输入都必须以“enter”结尾才能由程序实际获取。

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

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

由于我们知道一行总是表示按下了 Enter 键,因此如果 String 为空,则表示只保留了 Enter 键。

对于 ESC 键,如果必须让它像这样工作,您应该使用第 3 方库,否则,您可以让用户实际编写“ESC”或您定义的其他关键字作为输入。

关于java - 如何让 Java 在我的场景中检测按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46438087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com