gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:49:32 27 4
gpt4 key购买 nike

家庭作业:剪刀石头布游戏。

我创建了一个枚举:

      enum Gesture{ROCK,PAPER,SCISSORS};

我想从中比较值来决定谁获胜——计算机或人类。设置值工作得很好,并且比较工作正常(纸盖住石头,石头压碎剪刀,剪刀 Papercut )。但是,我不能让我的领带工作。只要出现平局,用户就会被宣布为获胜者。

啊……废话……这将澄清:userPick 是一个 Stringrock, paper,或 剪刀。我无法使用 ==userPickcomputerPick 进行比较,如下所示,它被转换为类型 来 self 的 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];

关于java - 将字符串与枚举值进行比较的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9858118/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com