using Switch and strings java



我听说你可以在字符串上使用开关,但我没有让它工作。在这种情况下,ToDo 将是用户输入字符串,但我的编译器告诉我"int 无法转换为字符串"。谁能告诉我我做错了什么?

class Comands {
  public Comands () {} 
  public void doSomething (String toDo){
    while (!(toDo.equals("quit"))) {
      switch (toDo) {
        case 1: toDo.equals("right");
        System.out.println("go right");
        break;
        case 2: toDo.equals("left");
        System.out.println("go left");
        break;
      }
    }
  }
}

就像@Hovercraft Full Of Eels提到的那样,您正在将您的字符串与case 1:中的整数进行比较,这应该包含这样的字符串:

...
case "left":
    // sysout();
    break;
case "right":
    // sysout();
    break;
...
 switch (toDo) {
    case "right":
    System.out.println("go right");
    break;
    case "left":
    System.out.println("go left");
    break;
  }

注: 只有在 Java SE 7 及更高版本中,才能在 switch 语句的表达式中使用 String 对象。

更多信息在这里。

最新更新