如何在Java中为switch语句添加同义词?



我有下面的函数,我想为每个大小写添加同义词,例如case "north"也可以是"向上","向东";可能是对的等等。由于所有的情况都属于相同的try/catch语句,我不确定如何为每个特定的情况做到这一点。感谢任何帮助!由于

public void changeRoom(boolean isValidInput, String[] input, int attemptCount) {
while (isValidInput) {
switch (input[1]) {
case "north":
case "east":
case "south":
case "west":
try {
if (world.getCurrentRoom().roomExits.containsKey(input[1])) {
player.setMostRecentExit(input[1]);
world.setCurrentRoom(world.getCurrentRoom().roomExits.get(input[1]));
isValidInput = false;
if (isSound) {
walkEffect.playSoundEffect();
}
Thread.sleep(1800);
narrateRooms(world.getCurrentRoom().getDescription());
break;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
default:
System.out.println("You hit a wall. Try again: ");
System.out.print(">>>");
attemptCount++;
if (attemptCount >= 2) {
System.out.println();
openMap();
System.out.println("Where would you like to go? ");
System.out.print(">>>");
}
input = scanner.nextLine().strip().toLowerCase().split(" ");
break;
}
}

我可以通过创建下面的函数来规范化输入。谢谢,大家好!

public String normalizeText(String input) {
List<String> northOptions = Arrays.asList("north", "up");
List<String> southOptions = Arrays.asList("south", "down");
List<String> eastOptions = Arrays.asList("east", "right");
List<String> westOptions = Arrays.asList("west", "left");
if (northOptions.contains(input.toLowerCase())) {
return "north";
}
if (southOptions.contains(input.toLowerCase())) {
return "south";
}
if (eastOptions.contains(input.toLowerCase())) {
return "east";
}
if (westOptions.contains(input.toLowerCase())) {
return "west";
}
return "";
} 

就像这样列出这些情况:

switch (input[1]) {
case "north": case "up":
case "east": case "right":
case "south": case "down":
case "west": case "left":

最新更新