Switch语句不接受String变量

时间:2014-11-30 03:03:30

标签: java string switch-statement

有人可以告诉我为什么switch语句没有识别gat String变量。 IDE告诉我primitiverequired(int,char,short ....),但它找到了一个字符串。

String gat = temp[i];

switch (gat) {
    case "a":
        output[i] = 12 * k;
        break;
    case "b":
        output[i] = 23 * k;
        break;
    case "c":
        output[i] = 34 * k;
        break;
}

2 个答案:

答案 0 :(得分:4)

您的项目合规性级别设置为Java 6或更早版本,您不能在Java 7之前使用String作为案例标签。但是,对于您的问题,您可以使用charAt(0)

String gat=temp[i];
switch (gat.charAt(0))
{
case 'a':
    output[i] = 12 * k;
    break;
case 'b':
    output[i] = 23 * k;
    break;
case 'c':
    output[i] = 34 * k;
    break;
}

答案 1 :(得分:0)

如果您使用的是NetBeans,请确保您拥有最新的JDK版本。 如果您使用的是Eclipse,请使用最新的JDK版本,并将Java设置中编译器的合规性级别设置为1.7。