Вы включаете x , который является строкой - если вы не используете Java 7, вы не можете использовать строку в выражении Switch.
Я ожидаю, что ошибкана самом деле происходит из str.startsWith () , где этот метод ожидает получить строку (с которой вы проверяете, с чего он начинается) и возвращает логическое значение, которое вы не можете включить либо.
ОБНОВЛЕНИЕ Исправление вашего кода, чтобы сделать то, что, я думаю, вы пытаетесь сделать:
void convert(String str)
{
int i = 0;
switch (str.charAt(0)) {
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '0':
i = Integer.parseInt(str);
break;
default:
System.out.println ("Should start with fixnumber");
}
System.out.println (i);
}
Хотя более короткий путь это просто сделать Integer.вызов parseInt и обработка возможного исключения NumberFormatException - тогда вам вообще не нужно выполнять переключение.
void convert(String str)
{
try {
int i = Integer.parseInt(str);
System.out.println (i);
} catch (NumberFormatException e) {
System.out.println ("Should start with fixnumber");
}
}
Вам необходимо либо вернуть i; и преобразовать сигнатуру метода из void в int , либо иным образом предоставить данные в я , чтобы сделать его стоящим.