关于Java:字符串作为switch语句

String as switch statement

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Switch Statement with Strings in Java

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


有一个方法,如果你真的真的很想使用开关的报表。 创建枚举的类,包括用例描述的开关.

1
2
3
4
5
public enum MustUseSwitch{
    value1,
    value2,
    value3;
}

然后使用枚举两个开关的两个命题。

1
2
3
4
5
6
7
8
9
10
11
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;
}


AA已经说,你不能对技术细节。你可以参考《关于规范编写的两个开关。与Java SE 7,这已经implemented功能性。看到这一页上用以与开关StringJDK 7。

也许这也是个问题我可以是有益的。


你不可以。如果使用如果/其他/其他/其他的条件。除非你是在java7。这个问题的答案在这个副本可以更好的解释它,比我的父亲:http:/ / / / stackoverflow.com 338230 / 3333


你不能直接使用的字符串,但你可以制造的阵列的关键。很快,搜索信息,和开关的指标,这样的:

1
2
3
4
5
6
7
8
9
10
11
12
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;
}

你不能使用一String在一switch声明,但你不可以使用的Enum类型。使用多个Enum冰淇淋更好比用A或A public static final int MY_CONSTANTString平衡。

你会找到一个很好的教程在这里的教程:Java的枚举类型。