gpt4 book ai didi

java - 比较枚举中的排名

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:04 27 4
gpt4 key购买 nike

我有以下代表 CardRank 的枚举

public enum CardRank
{
DEUCE('2'), TREY('3'), FOUR('4'), FIVE('5'), SIX('6'), SEVEN('7'),
EIGHT('8'), NINE('9'), TEN('T'), JACK('J'), QUEEN('Q'), KING('K'),
ACE('A');

private char symbol;

private CardRank(char symbol)
{
this.symbol = symbol;
}

public char getSymbol()
{
return this.symbol;
}
}

CardRank 以升序表示。我需要比较等级才能知道哪个等级比另一个等级高。我可以将 > 运算符与数值一起使用,但不能与 char 值一起使用。

// this will print out TRUE for all numerical values compared 
// but FALSE for the chars
if (card.getRank().getSymbol() > anotherCard.getRank().getSymbol()) {
System.out.println("true");
} else {
System.out.println("false");
}

有什么想法吗?

最佳答案

if (card.getRank().compareTo(anotherCard.getRank()) > 0)

是你需要的。

你也可以使用序号:

if (card.getRank().ordinal() > anotherCard.getRank().ordinal())

枚举具有由其序数定义的自然顺序。枚举的序号是根据它在声明中的位置来分配的。所以 DEUCE 的序数为 0,TREY 的序数为 1,等等。

关于java - 比较枚举中的排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10667487/

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