字符串作为switch语句

可能重复:
使用Java中的字符串切换语句

我试图在String上使用switch语句,但它给出了编译错误。 如果任何人建议我如何在switch-case语句中使用String,它将对我有所帮助。

如果你真的想要使用switch语句,有一种方法。 创建一个包含switch语句案例的枚举类

public enum MustUseSwitch{ value1, value2, value3; } 

然后使用枚举切换到语句。

 switch(MustUseSwitch.valueOf(stringVariable)){ case value1: System.out.println("Value1!"); break; case value2: System.out.println("Value2!"); break; case value3: System.out.println("Value3!"); break; } 

如前所述,你不能。 有关技术细节,请参阅有关编译开关的规范。 使用Java SE 7,已实现此function。 有关使用带有JDK 7的String开关的示例,请参阅此页面 。

也许这个问题也有帮助。

你不能。 使用if / else if / else if / else。 除非你使用的是Java7。 关于这个重复问题的答案可以解释得比我更好: https : //stackoverflow.com/a/338230/3333

你不能直接使用字符串,但你可以创建一个关键字符串数组,快速搜索它,并打开索引,如下所示:

 String[] sortedKeys = new String[] {"alpha", "bravo", "delta", "zebra"}; int keyIndex = Arrays.binarySearch(sortedKeys, switchKey); switch(keyIndex) { case 0: // alpha break; case 1: // bravo break; case 2: // delta break; case 3: // zebra break; } 

您不能在switch语句中使用String ,但可以使用Enum类型。 使用Enum比使用String甚至是public static final int MY_CONSTANT

你会在这里找到一个非常好的教程: Java Enum类型教程