바코드를 나타내는 문자열 매개 변수를 사용하고 해당 문자열에 해당하는 숫자를 반환해야하는 메서드가 있습니다. 아래 코드 :switch 문과 호환되지 않는 형식?
public int codeToDigit (String code) throws IOException
{
switch (code)
{
case "||:::": return 0;
case ":::||": return 1;
case "::|:|": return 2;
case "::||:": return 3;
case ":|::|": return 4;
case ":|:|:": return 5;
case ":||::": return 6;
case "|:::|": return 7;
case "|::|:": return 8;
case "|:|::": return 9;
}
}
두 가지가 혼란 스럽습니다. 먼저 기본값으로 무엇을 넣어야합니까? 지금은 자리 표시 자와 마찬가지로 10 개가 있습니다. 그러나 그것은 정확하지 않습니다.
BarCode.java:56 : 발견 호환되지 않는 유형 : java.lang.String의 필요 : 스위치를 int로 (코드)
그들은 호환되지 않는 것 내가 컴파일 할 때 또한, 나는 다음과 같은 오류가 발생합니다 외관상으로는 유형? 이 문제를 해결하는 방법에 대한 의견이 있으십니까? 도와 주셔서 감사합니다!
편집 : 많은 분들이 제가 한 Java 7 로의 업그레이드에 대해 언급했습니다. Java 7에서 작업하고 Update 51을 업데이트했습니다. 그러나 여전히 동일한 문제가 발생합니다.
sidenote : 이러한 'break' 문은 어쨌든 그 지점에 도달하지 않으므로 놓을 필요가 없습니다.'return'은 더 빨리 중지합니다. –
그것은 당신이 여기서 성취하고자하는 것에 달려 있습니다. switch 문은 정수 또는 문자를 사용합니다. switch 문에서 전체 문자열을 찾으려고하면 이클립스를 열어 볼 수있을 때 체크 아웃해야 할 것입니다. 정수와 문자는 쉽습니다. 당신은 그 성격을 단지 당신이 찾고있는 성격을 취할 수 있습니다. 하지만 대부분의 경우 문자 집합 (문자열)을 찾고 스위치를 사용하고 if 문을 사용한다고 생각합니다. –
자바 1.7 이상은'switch ()'허용 –