将字符串与枚举值进行比较的正确方法是什么?

作业:剪刀石头布游戏。

我创建了一个枚举:

      enum Gesture{ROCK,PAPER,SCISSORS};

从中我想比较各种价值观来决定谁是计算机还是人。设置值就可以了,并且比较也可以正常工作(纸张覆盖岩石,岩石压碎剪刀,剪刀切碎纸张)。但是,我不能束手无策。只要有平局,该用户即被宣布为获胜者。

唉唉......废话......这将澄清:userPick是一个String具有价值rockpaperscissors。我无法用==比较userPickcomputerPick,正如你可以看到下面,是铸造类型Gesture从我的enum

      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不等于ROCKString userPick无法匹配的问题,Gesture

computerPick因为后者不是String。但是,我无法在教科书或Oracle的Java教程中找到类似情况的示例,因此我不确定如何解决此问题。

有什么提示吗?

回答:

我从你的问题是收集userPick是一个String值。您可以这样比较:

if (userPick.equalsIgnoreCase(computerPick.name())) . . .

顺便说一句,如果你是保证computer始终是一个值123(和没有别的),你可以将其转换为Gesture与枚举:

Gesture computerPick = Gesture.values()[computer - 1];

以上是 将字符串与枚举值进行比较的正确方法是什么? 的全部内容, 来源链接: utcz.com/qa/412781.html

回到顶部