字符串作为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类型教程