java - 尝试打印枚举以类似于一副纸牌,但无法仅打印对象描述

标签 java object printing enums

我正在尝试使用枚举来表示花色和牌值来制作一副牌。我正在尝试打印枚举列表,但我只得到它们的数值,而不是对象名称。我在 newboston 上观看了该视频超过 9000 次,但似乎无法弄清楚这一点。

这是我运行程序时的打印输出

123456789101112131 2 3 4

我的总体目标是将这些枚举放入一个数组列表中,在那里我可以将它们分配给玩家。当我打印这些语句时,它不应该告诉我(Ace、King、Queen...等)吗?

打印报表

for(CardValue card : CardValue.values()) {//Enhanced for loop
            System.out.printf("%s",card);//I tried using different styles of print to see if it would change anything
                }
        for(Suit card : Suit.values()) {//Enhanced for loop
            System.out.println(card.toString());
                }

枚举类卡值

    public enum CardValue
    {
      ACE(1),
      TWO(2),
      THREE(3),
      FOUR(4),
      FIVE(5),
      SIX(6),
      SEVEN(7),
      EIGHT(8),
      NINE(9),
      TEN(10),
      JACK(11),
      QUEEN(12),
      KING(13);

      private final int cardValue;

      private CardValue (int value)
      {
        this.cardValue = value;
      }

      public int getCardValue() {
        return cardValue;
      }

      public String toString(){
        return String.format("%s", cardValue);

      }
    }

枚举类套装

public enum Suit
{
  HEARTS(1),
  SPADES(2),
  CLUBS(3),
  DIAMONDS(4);

  private final int suit;

  private Suit (int value)
  {
    this.suit = value;
  }

  public int getCardSuit() {
    return suit;
  }
  public String toString(){
      return String.format("%s", suit);
  }
}

最佳答案

您的 toString 方法应如下所示:

 public String toString(){
    return String.format("%s", this.name());
  }

您还可以在打印枚举值时直接利用内置的 name() 方法。在您的代码示例中,您只是打印您自己在两个枚举中定义的描述字段。 name() 方法将返回枚举“name”的实际字符串值,该值唯一定义当前枚举常量。

关于java - 尝试打印枚举以类似于一副纸牌,但无法仅打印对象描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20502904/

相关文章:

java lang Nullpointerexception 更新谷歌服务后

java - Map Stream 获取 Key 和 Value 乘积的总和

Javascript 从内部对象引用外部对象

C++打印从字符串字符派生的整数

css - 使用 print css,在 :body not showing in Internet Explorer 8 之前添加图像

java - Java类对象的重用

java - 在 GWT 上使用谷歌地图时出现问题

c++ - 指向具有函数 C++ 的数据成员的指针

javascript - 如何以数字方式访问 Javascript 对象的成员?

java - 在 4x6"纸上使用 java 打印 gif