я следующее перечисление, которое представляет собой 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");
}
Любые идеи?
Используйте компаратор здесь. Вы можете сделать это статическим публичным внутренним классом для перечисления, если хотите. –
вы можете добавить к нему низкий туз, если вы заинтересованы в прямых. –