java - 如何扫描和响应用户的输入?
问题描述
创建一个简单的 ATM 菜单,上面只有几个选项。
想知道如何让用户输入一些东西来选择选项,然后代码可以响应输入。
例如,“readLine(string)”
以下是我的代码:
public class Menu
{
private String menuText;
private int optionCount;
public Menu()
{
menuText = "";
optionCount = 0;
}
public void addOption(String option)
{
optionCount = optionCount + 1;
menuText = menuText + optionCount + ") " + option + "\n";
}
public void display()
{
System.out.println(menuText);
}
}
public class MenuDemo{
public MenuDemo()
{
}
public static void main(String[] args)
{
Menu mainMenu = new Menu();
mainMenu.addOption("Log In Account");
mainMenu.addOption("Deposit Check");
mainMenu.addOption("Help");
mainMenu.addOption("Quit");
mainMenu.display();
}
}
解决方案
您可以使用 Scanner 类读取用户输入。然后使用 switch 语句执行您需要的操作:
import java.util.Scanner;
class Menu
{
private String menuText;
private int optionCount;
public Menu()
{
menuText = "";
optionCount = 0;
}
public void addOption(String option)
{
optionCount = optionCount + 1;
menuText = menuText + optionCount + ") " + option + "\n";
}
public void display()
{
System.out.println(menuText);
}
}
public class MenuDemo{
public MenuDemo()
{
}
public static void main(String[] args)
{
Menu mainMenu = new Menu();
mainMenu.addOption("1. Log In Account");
mainMenu.addOption("2. Deposit Check");
mainMenu.addOption("3. Help");
mainMenu.addOption("4. Quit");
mainMenu.display();
Scanner input = new Scanner(System.in);
System.out.println("Enter Choice: ");
String i = input.nextLine();
switch(i){
case "1":
//do something
System.out.println("User Entered 1 : " + i);
break;
case "2":
//do something
System.out.println("User Entered 2 : " + i);
break;
case "3":
//do something
System.out.println("User Entered 3 : " + i);
break;
case "4":
//do something
System.out.println("User Entered 4 : " + i);
break;
default:
System.out.println("Quit" + i);
}
}
}
推荐阅读
- android - java.lang.VerifyError:从 4.0.1 升级到 4.1.1 后 Android 4 中的 f/i/b/f
- objective-c - 如何使用 DJI SDK 收听遥控器棒值更新?
- function - 引用 Scheme 中的列表时出错,使用 `define` 函数命名
- c# - System.ArgumentNullException:值不能为 null ,参数名称:queryString
- html - 关键字/标签与整个 HTML 文件中的整行代码之间的某种引用
- netlogo - 不满足重新着色条件的随机补丁被重新着色
- flutter - alertDialog 不会出现在颤动中
- r - 用 R 和聚类绘制热图
- django - Heroku Django 值对于类型字符变化而言太长(20)
- javascript - 如何配置安全性以允许仅通过 nodejs 中的身份验证访问 swagger url