如何在Java中有效地比较用户输入和多输出场景
我找了一会儿,试图找到我问题的答案,但什么也没找到 我正在用Java编程,我想知道是否有一种有效的方法来获取用户的输入并与许多可能的输出进行比较 然后,我希望程序根据输入执行代码。我知道您可以在if{语句中执行switch if{以及do和or或 我试图避免使用一堆}else if{语句以及if{语句中的AND/or来执行if{语句 我只是想知道是否应该换一种方式,或者是否有一种更有效的方式 编辑:我还没有写任何东西。我只是想知道。如果问题太模糊,别担心。我只是好奇。再次感谢 谢谢,如何在Java中有效地比较用户输入和多输出场景,java,java.util.scanner,user-input,Java,Java.util.scanner,User Input,我找了一会儿,试图找到我问题的答案,但什么也没找到 我正在用Java编程,我想知道是否有一种有效的方法来获取用户的输入并与许多可能的输出进行比较 然后,我希望程序根据输入执行代码。我知道您可以在if{语句中执行switch if{以及do和or或 我试图避免使用一堆}else if{语句以及if{语句中的AND/or来执行if{语句 我只是想知道是否应该换一种方式,或者是否有一种更有效的方式 编辑:我还没有写任何东西。我只是想知道。如果问题太模糊,别担心。我只是好奇。再次感谢 谢谢, ~Rane
~Rane您可以使用映射并在那里预先定义键值对,然后尝试将用户输入与键值匹配以获得输出
String userInput = "input1"; // test
Map<String, String> inputMap = new HashMap<String, String>();
inputMap.put("input1", "output1");
inputMap.put("input2", "output2"); //etc..
String userOutput = (String) inputMap.get(userInput);
Ouput将被output1。如果未检索到匹配项,则返回null
我希望我正确地理解了您的需要。如果您只想使用字符串查找值,请使用Michael建议的映射。但是,如果您想基于字符串执行更多操作,请从Java 7开始使用switch语句
String input = ....;
switch(input) {
case "input1":
// do stuff
break;
case "input2":
// do stuff
}
更多信息:这个问题很模糊,会引起猜测。您可以使用命令查找策略,在该策略中,您可以维护有效命令的映射(可能是字符串),该映射链接到提供简单执行方法的接口实现。然后,您只需接受用户输入,在映射中查看指定命令,然后如果存在,执行接口实现…但这可能无法满足您的需求。您能提供一个用例或测试用例吗?您能为您的想法提供更多的上下文吗?一个用例或测试用例?