【问题标题】:Enums in java: How can I use numbers [duplicate]java中的枚举:我如何使用数字[重复]
【发布时间】:2018-10-21 09:10:22
【问题描述】:

我正在开发一个带有纸牌的程序。目前我有:

public enum Numbers {
    N2, N3, N4, N5, N6, N7, N8, N9, N10, JACK, KING, QUEEN, ACE
}

我确实需要将它们显示为实际数字,例如 1、2、3、4 等,因为我正在努力使我的程序更具可读性。 我尝试使用这样的 toString 方法,但它并没有真正改变任何东西:

N2 {

    public String toString() {
        return "2";
    }
}

任何指导将不胜感激。

【问题讨论】:

  • TWOTHREEFOUR 等?
  • 同意@Phil。如果你想操作实际的整数,请考虑adding an attribute
  • 当你说实际数字时,你想让 JACK、KING、QUEEN、ACE 显示为 11、12、13、1 吗?
  • 类似this(挖一点它在里面)或this
  • 所以返回name().startsWith("N") ? name().substring(1) : name().substring(0, 1)

标签: java enums


【解决方案1】:

您可以在构造函数中和声明时为每个enum 值传递您想要的任何int 值。然后在您的 toString() 方法中使用它。喜欢,

public enum Numbers {
    N2(2), N3(3), N4(4), N5(5), N6(6), N7(7), N8(8), N9(9), 
            N10(10), JACK(11), KING(12), QUEEN(13), ACE(1);
    Numbers(int value) {
        this.value = value;
    }

    private int value;

    public String toString() {
        return Integer.toString(value);
    }
}

【讨论】:

  • 您可以将 String 传递给构造函数,而不是每次都转换值。也许你甚至不需要传值,只需设置 this.valueStr = Integer.toString(ordinal());。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
  • 2019-10-09
  • 1970-01-01
相关资源
最近更新 更多