采取多种输入变体来表示同一事物的方法?
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 + "!"
}
我必须在 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 + "!"
}