Как правильно сравнить строку со значением перечисления? ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Как правильно сравнить строку со значением перечисления?

Сообщение Anonymous »

Домашнее задание: игра «Камень, ножницы, бумага».

Я создал перечисление:

Код: Выделить всё

      enum Gesture{ROCK,PAPER,SCISSORS};
из которого я хочу сравнить значения, чтобы решить, кто победит — компьютер или человек. Установка значений работает нормально, и сравнения работают правильно (бумага покрывает камень, камень раздавливает ножницы, ножницы разрезают бумагу). Однако я не могу заставить свой галстук работать. Пользователь объявляется победителем в любой момент, когда возникает ничья.

Ааа... чушь... это прояснит: userPick — это строка code> со значениями камень, бумага или ножницы. Я не могу использовать == для сравнения userPick с компьютером, который, как вы можете видеть ниже, приводится к типу Gesture из моего перечисления .

Код: Выделить всё

      if(computer == 1)
computerPick = Gesture.ROCK;
else
if(computer == 2)
computerPick = Gesture.PAPER;
else
computerPick = Gesture.SCISSORS;
if(userPick.equals(computerPick))
{
msg = "tie";
++tieGames;
}
etc....
Я предполагаю, что существует проблема, связанная с тем, что rock не равен ROCK, или строковый userPick не может соответствует Gesture ComputerPick, поскольку последний не является строкой. Однако я не могу найти пример подобной ситуации в своем учебнике или учебниках Oracle по Java, поэтому не знаю, как исправить проблему...

Есть подсказки?

Подробнее здесь: https://stackoverflow.com/questions/985 ... enum-value

Вернуться в «JAVA»