我的switch语句遇到了一些问题

时间:2015-07-29 02:28:03

标签: java

好的,所以我已经编程了很短的时间,我已经开始制作非常好的程序了。但是当涉及到开关时,它们在实际工作时总是运气好的。我写了这个switch语句:

String answer1 = in.nextLine();

switch (answer1)
{
case 1:
        System.out.println("...");
        break;
case 2:
        System.out.println("...");
        break;
case 3:
        System.out.println("...");
        break;
}

并且案例旁边的开关标签都表示'错误无法从int转换为字符串'有人可以帮助。谢谢  Noob程序员~Chase

3 个答案:

答案 0 :(得分:3)

您正在尝试启用String,而案例为int。您需要先解析字符串,然后再将其传递给switch

String answer1 = in.nextLine();
switch (Integer.parseInt(answer1)) {
    ...
}

答案 1 :(得分:1)

仅在Java 7中支持switch中的字符串。

http://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html

如果您使用的是Java 7及更高版本,那么

switch (answer1)
{
case "1":
        System.out.println("...");
        break;
case "2":
        System.out.println("...");
        break;
case "3":
        System.out.println("...");
        break;

否则你必须将它转换为int,如@dasblinkenlight

的答案所示

答案 2 :(得分:0)

您可能需要验证您正在使用的Java版本。这在旧版本的Java上是不可能的。

请参阅:Why can't I switch on a String?

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

也就是说,如果您打算打开String。如果你确实期望一个整数(你需要解析它),请参阅下面的答案(@dasblinkenlight)。