将字符串与枚举值进行比较的正确方法是什么?
作业:剪刀石头布游戏。
我创建了一个枚举:
enum Gesture{ROCK,PAPER,SCISSORS};从中我想比较各种价值观来决定谁是计算机还是人。设置值就可以了,并且比较也可以正常工作(纸张覆盖岩石,岩石压碎剪刀,剪刀切碎纸张)。但是,我不能束手无策。只要有平局,该用户即被宣布为获胜者。
唉唉......废话......这将澄清:userPick是一个String具有价值rock,paper或scissors。我无法用==比较userPick来computerPick,正如你可以看到下面,是铸造类型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不等于ROCK或String userPick无法匹配的问题,Gesture
computerPick因为后者不是String。但是,我无法在教科书或Oracle的Java教程中找到类似情况的示例,因此我不确定如何解决此问题。
有什么提示吗?
回答:
我从你的问题是收集userPick是一个String值。您可以这样比较:
if (userPick.equalsIgnoreCase(computerPick.name())) . . .顺便说一句,如果你是保证computer始终是一个值1,2或3(和没有别的),你可以将其转换为Gesture与枚举:
Gesture computerPick = Gesture.values()[computer - 1];以上是 将字符串与枚举值进行比较的正确方法是什么? 的全部内容, 来源链接: utcz.com/qa/412781.html

