Печать из класса Enum

Я новичок в классе типа Enum. У меня есть 2 класса Enum, один для ранга один для костюмов, как показано ниже.

    public enum Rank 
{
    ACE(1), TWO(2), THREE(3),
    FOUR(4), FIVE(5), SIX(6),
    SEVEN(7), EIGHT(8), NINE(9),
    TEN(10), JACK(J), QUEEN(Q),
    KING(K);
    //private fields
    private final int rankValue;
//with constructor passing rankValue 
//with method getRank
}
public enum Suit 
{
    HEARTS("H"),
    SPADES("S"),
    DIAMONDS("D"),
    CLUBS("C");
    private final String suitText;
//with constructor and printSuit()
}

в моем основном методе я выясняю, как их распечатать следующим образом:

S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 SJ SQ SK

H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 HJ HQ HK .... за ними следуют бубны и трефы.

большое спасибо всем.

Ваше перечисление Rank объявляет JACK(J), QUEEN(Q), KING(K)? Что такое J, Q и K?

khelwood 18.04.2018 12:37

Перебрать Rank / Suits values().

daniu 18.04.2018 12:38

J, Q, K - представления JACK QUEEN и KING.

Nic 18.04.2018 12:41

@daniu получит ACE, TWO ... если переберет .values();)

xxxvodnikxxx 18.04.2018 12:42
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
4
119
2

Ответы 2

В основном enum - это просто еще один класс java с некоторыми особенностями, но в основном вы можете делать то же самое, что и в классическом классе, поэтому для этого случая, например. следующий:

public enum CardsEnumWithProps {
    HEARTS("H"),
    SPADES("S"),
    DIAMONDS("D"),
    CLUBS("C");

    private String stringSign;


    private CardsEnumWithProps(String strSign) {
        this.stringSign = strSign;  //stringSign = strSign

    }

    public String getStr() {
        return this.stringSign;
    }

}

Затем вы можете вызвать .getStr() по значению перечисления, например:

System.out.println(CardsEnumWithProps.DIAMONDS.getStr()); 

И получаем на выходе D

Для каждого элемента в перечислении вы можете перебирать .values() из Enum

 CardsEnumWithProps[] cards = CardsEnumWithProps.values();
for (int i = 0; i < cards.length; i++) {
 System.out.println(cards[i].name() + " --- " + cards[i].getStr());
}

И ты получишь

HEARTS --- H
SPADES --- S
DIAMONDS --- D
CLUBS --- C

Вы можете сделать это с помощью следующего кода:

Rank [] ranks = Rank.values();
 Suit [] suits = Suit.values();
for (int i = 0; i < suits.length; i++) {

for (int j = 0; j < ranks.length; j++) {

 System.out.print(suits[i].getSuitText + ranks[j].getRank()+"\s");
}

 System.out.println("\n");
}

Пожалуйста, объясните свой ответ. Что делает ваш код и почему он решает проблему?

Jérôme 18.04.2018 16:53

Другие вопросы по теме