gpt4 book ai didi

Java switch case 单个和非单个命令输入

转载 作者:行者123 更新时间:2023-11-30 03:05:17 24 4
gpt4 key购买 nike

这些都是我想接受的所有可能的命令。

Q
H
A
D
L <Color> <Drawer>
M <Drawer1> <Drawer2>

我有这个开关盒。 对输入进行错误检查的最佳方法是什么/扫描潜在非单字母命令(例如“L”或“M”命令)的最佳位置在哪里?我只想有一个默认值代码中的 case ,以避免将错误消息复制粘贴到多个位置。另外,我担心像 Q zzzzz 这样的命令会被接受,因为我只调用 reader.next() 来读取直到下一个空格。我应该使用 reader.nextline() 来代替吗?

String input = reader.next();

switch (input.toUpperCase())
{
case "Q": //Quit:
//.....
break;

case "H": //Help:
//.....
break;

case "A": //About:
//.....
break;

case "D": //Draw:
//.....
break;

case "L": //Lay:
//prompt for more input here?
//if so, and the input is wrong, how to jump to default?
//.....
break;

case "M": //Move:
//same issue as 'L'
break;

default:
System.out.println("\nYour command was not recognized. Type H for help.");
}//end switch()

我原本想在 switch case 之前扫描 3 次(如果用户选择单字母命令,其中 2 次可能为空)。

我可以编写一个解决方案,但这将是一个非常丑陋的解决方案。我只是一个初学者程序员,试图优雅地编写东西。

最佳答案

也许是这样的:

String input = reader.nextLine();

char c = input.charAt(0);

if ( (c != 'M' && c != 'L') && input.length() > 1)
// throw some error message

switch(c)
...
case "L": //Lay:
// parse the rest of input here
break;

关于Java switch case 单个和非单个命令输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34969518/

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