采取多种输入变体来表示同一事物的方法?

Ways to take multiple variations of inputs to mean the same thing?

我必须在 Java 中为 uni 制作一个基于文本的游戏,我想让用户为 items/NPCs 使用多个命令变体和多个名称。最好的方法是什么?

例如,如果我想让人们去西部,我希望人们能够说 “向西走”或“向西走”或“向西走”等

我知道我可以用其中的许多来做到这一点:

if (command.equals("head") || command.equals("walk") || command.equals("travel") || command.equals("go"))

但这不仅冗长丑陋,而且对于每一个命令、每一个项目和每一个字符,它都会变得异常冗长和低效。有没有更好的方法来做到这一点而不是疯狂先进?谢谢

如果你愿意,你可以忽略除了你想要的实际值之外的用户输入,我认为这是方向:

String lowerCaseCommand = command.toLowerCase()
if (lowerCaseCommand.contains("west") || lowerCaseCommand.contains("north") || so on...) {
   // do something.
}

或者你想要这样的东西:

String[] array = {"head", "walk", "travel"}
for (String str : array) {
   if (command.equalsIgnoreCase(str)) {
       // do something
       break;
   }
}

您可以(如果需要)使用 switch/case 块,例如:

switch (command.toLowerCase()) {
    case "head": case "walk": case "travel":
        callDoSomethingMethod();
        break;
    case "rest": case "sleep": case "passout":
        callAnotherDoSomethingMethod();
        break;
    default:
        System.err.println("Don't understand the command: '" + command + "!"
}