DrJava switch(String)问题

时间:2014-03-25 07:33:49

标签: java drjava

DrJava在编译一个非常简单的switch语句时遇到了问题。

这是一个简单的例子:

switch (sc.next()) {
  case "abc": output = 0; break;
  case "bcd": output = 1; break;
}

DrJava在第一行返回以下消息。

错误:无法打开java.lang.String类型的值。只允许使用可转换的int值或枚举常量

SSH Secure Shell编译没有问题,我听说很久以前就实现了switch(String)。我可以做些什么来解决DrJava上的这个问题?

*我的DrJava是最新版本。

3 个答案:

答案 0 :(得分:1)

您的Java版本是什么?关于字符串的switch语句只在Java 7中开始。

否则你将不得不使用旧的if条件:

String text = sc.next()

if(text.equals("abc")) {
    output = 0;
} else if (text.equals("bcd")) {
    output = 1;
}

答案 1 :(得分:0)

您只能在Java7中执行此操作,如here所示,您的另一种选择是使用if语句。如果您想查看正在运行的Java版本,请在控制台中键入java -vjava --version,以便为您提供版本。

答案 2 :(得分:0)

在JDK 7中,我们可以在switch中使用String比较。在早期的java版本中(6,4,...)。我们不能在switch语句中使用String。