Java 尝试打印枚举以使其类似于一副卡片,但可以';只打印对象描述

Java 尝试打印枚举以使其类似于一副卡片,但可以';只打印对象描述,java,object,printing,enums,Java,Object,Printing,Enums,我正在尝试使用枚举来制作一副牌,用于西服和牌值。我试图打印枚举列表,但我只得到它们的数值,而没有对象名称。我在newboston上看了九千多次视频,但似乎无法理解这一点 这是我运行程序时的打印输出 12345678910112131 2 3 4 我的总体目标是将这些枚举放到arraylist中,在那里我可以将它们分发给玩家。当我打印这些声明时,它不应该告诉我(王牌、国王、王后……等等) 打印报表 for(CardValue card : CardValue.values()) {//Enhanc

我正在尝试使用枚举来制作一副牌,用于西服和牌值。我试图打印枚举列表,但我只得到它们的数值,而没有对象名称。我在newboston上看了九千多次视频,但似乎无法理解这一点

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

12345678910112131 2 3 4

我的总体目标是将这些枚举放到arraylist中,在那里我可以将它们分发给玩家。当我打印这些声明时,它不应该告诉我(王牌、国王、王后……等等)

打印报表

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”的实际字符串值,该值是唯一定义当前枚举常量的值。

您应该使用语言或其他标识符(而不是您使用的通用标识符)进行标记。那是爪哇吗?是的,很抱歉。我忘了。+1如果你也解释他输出的原因,对op会更有帮助。添加了一个更好的描述,说明他为什么得到不正确的输出。