2014-11-29 2 views
0

문자열에 스위치를 사용할 수 있다고 들었지만 작동하지 않습니다. ToDo는이 경우 사용자 입력 문자열이되지만 내 컴파일러는 "int를 String으로 변환 할 수 없습니다"라고 알려줍니다. 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까?스위치 및 문자열 사용 java

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; 
     } 
    } 
    } 
} 
+7

'case "right": System.out.println ("right right"); 단절; case "left": ... ... –

+1

페이지 맨 아래에있는 switch 문의 문자열에 대한 Java 자습서도 참조하십시오. http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html –

답변

1
switch (toDo) { 
    case "right": 
    System.out.println("go right"); 
    break; 

    case "left": 
    System.out.println("go left"); 
    break; 
    } 

참고 : 자바 SE 7 그리고 나중에 switch 문의 식에서 String 객체를 사용할 수 있습니다.

자세한 정보 here.

+0

어떻게하면 ignoreCase를 수행 할 수 있는지 알고 계십니까? –

+0

@stian 대소 문자를 무시하려면 if 문을 사용해야합니다. – August

+3

@stian'ignoreCase'를 사용할 수는 없지만'switch (toDo.toLowerCase())'를하면 문자열이 소문자임을 알 수 있습니다. – khelwood

3
, 당신은 case 1:에서 정수와 문자열을 비교하는 언급 뱀장어의

처럼 @Hovercraft 전체, 문제는이 같은 문자열을 포함한다 :

... 
case "left": 
    // sysout(); 
    break; 
case "right": 
    // sysout(); 
    break; 
...