Java 编译器不允许在switch语句中使用字符串变量

Java 编译器不允许在switch语句中使用字符串变量,java,eclipse,Java,Eclipse,在为我的应用程序设置任何条件之前,我需要能够让switch语句在while循环下运行。据说它无法在1.7下的任何编译器下工作。JRE。我不知道这意味着什么,我也不知道如何将变量更改为枚举类型 package PokerApp; import java.util.Scanner; public class PokerApp { public static void main(String[] args) { int card1 = 0; int card2 = 0; int play;

在为我的应用程序设置任何条件之前,我需要能够让switch语句在while循环下运行。据说它无法在1.7下的任何编译器下工作。JRE。我不知道这意味着什么,我也不知道如何将变量更改为枚举类型

package PokerApp;
import java.util.Scanner;
public class PokerApp {

    public static void main(String[] args) {

int card1 = 0;
int card2 = 0;
int play;
String fc1 = "", fc2 ="";
String answer = "";

Scanner scan = new Scanner(System.in);

//**************************************
//              Card1
//**************************************
System.out.println("Press 1 to evalaute your cards: ");
play = scan.nextInt();
while (play != 0){

System.out.println("First Card: ");
if (scan.hasNextInt())
{
    card1 = scan.nextInt(9)+2;
}
else{
    fc1 = scan.next();
    switch(fc1)
    {
    case "A":
        card1 = 14;
        break;
    case "K":
        card1 = 13;
        break;
    case "Q":
        card1 = 12;
        break;
    case "J":
        card1 = 11;
        break;
        default:System.out.println("Incvalid entry");
    }
//***************************************
//              Card2
//***************************************

System.out.println("Second card: ");
if (scan.hasNextInt())
{
    card2 = scan.nextInt(9) +2;
}
else{
    fc2 = scan.next();
    switch (fc2)
    {
    case "A":
        card2 = 14;
        break;
    case "K":
        card2 = 13;
        break;
    case "Q":
        card2 = 12;
        break;
    case "J":
        card2 = 11;
        break;
    default:System.out.println("Invalid entry.");
    }

    }
}

    }

}
}

在JDK 1.7之前的版本中,字符串不能用作switch语句的一部分。您需要安装JDK1.7并将Eclipse设置为使用此版本的JDK


请参阅这篇文章,其中详细介绍了如何切换JRE/JDK版本。

将Java升级到1.7+并在Eclipse中使用它,如果不能,则必须将案例转换为if-else语句。

它不会。Java8和更高版本允许您这样做。Java有不同的版本。Java7中引入了将
开关
字符串
一起使用。检查您的版本。@Trojan.ZBOT我想这项功能是在1.7或Java 7中引入的。您可以将
switch
char
s一起使用。但当我将其切换到1.7时,我的所有“系统”获取诸如my System.out.println之类的错误这些错误可能是由于您没有在IDE中安装和/或配置版本7 JDK造成的。