мой вопрос довольно прост, что я хочу сделать, так это напечатать имя корпуса переключателя, которое устанавливается, когда пользователь вводит значения. Предположим, что
switch (name.toLowerCase()) {
case "john":
salary = 12;
break loop;
case "jack":
case "jonathen":
salary = 6;
break loop;
default:
System.out.println("\n\tWrong Name Dude!");
break;
}
System.out.print(name)
Что я хочу сделать, так это когда пользователь вводит john, или JOHN, или joHn, я просто хочу, чтобы было напечатано «john». Что и есть на самом деле '' имя. Проблема в том, что если я использую назначенную строку для ее печати, to.lowercase будет определять, что это «john» при вводе «JoHn», но при печати он будет печатать «JoHn» вместо «john» какие-либо предложения?
Использовать toLowerCase() при печати точно так же, как и на коммутаторе? Или вместо того, чтобы вызывать метод 2 раза, просто сделайте имя в нижнем регистре, прежде чем делать все это. name = name.toLowerCase()
Из какого цикла вы выходите из цикла break ;?




Попробуй просто распечатать name.toLowerCase()
Не могу поверить, что забыл об этом, стыдно, что даже спросил. Большое спасибо
измените свой код следующим образом:
name = name.toLowerCase();
switch (name) {
case "john":
salary = 12;
break loop;
case "jack":
case "jonathen":
salary = 6;
break loop;
default:
System.out.println("\n\tWrong Name Dude!");
break;
}
System.out.print(name)
причина в том, что name.toLowerCase() просто возвращает нижний регистр имени переменной, но не изменяет само имя, поэтому вы должны присвоить возвращаемое значение имени.
Класс Нить в Java является неизменным, что означает, что после создания объекта String любая операция, которую вы выполняете над ним, не изменит значение объекта, а вместо этого вернет строку новый, которая является результатом вызванного вами метода (toLowerCase в этот случай).
Чтобы добиться желаемого, вам просто нужно сохранить ссылку на новую строку в другой переменной. Вы можете попробовать что-то вроде этого:
switch (name = name.toLowerCase()) {
case "john":
salary = 12;
break loop;
case "jack":
case "jonathen":
salary = 6;
break loop;
default:
System.out.println("\n\tWrong Name Dude!");
break;
}
System.out.print(name)
Ваш вопрос непонятен