使用枚举代替String

时间:2012-12-27 13:19:32

标签: java string enums

我正在执行一个用于将数字转换为单词的java代码(例如,999 - >九九九)。我用了两个String来定义单词。

private static final String[] tensWords ={ "", " ten", " twenty", " thirty"}
public enum tenWords{ten, twenty, thirty} 

当我使用枚举时,我无法像在String数组中那样放置空白“。所以它导致了错误的输出。请建议如何解决这个问题。下面是我使用枚举来访问值的代码。

if (number % 100 < 20)
{
    soFar = tensWords.values()[number % 100].toString();
    number /= 100;
}

3 个答案:

答案 0 :(得分:5)

您可以使用枚举参数在枚举值中存储您想要的任何内容:

enum TensWords {
    NONE(""),
    TEN("Ten"),
    TWENTY("Twenty");
    ///...

    private final String text;

    TensWords(String text) {
        this.text = text;
    }

    public String getText() {
        return text;
    }
}

另外,请考虑移动代码以按编号将TensWords确定为枚举作为静态方法。

答案 1 :(得分:1)

您可以使用枚举并指定值:

public enum TenWords{
     ZERO(""), TEN("ten"), TWENTY("twenty"), THIRTY("thirty");

     private final String value;
     private TenWords(String value) {
       this.value = value;
     }
     public String getValue() {
       return value;
     }
}

并访问它:

System.out.println(TEN.getValue());
System.out.println(ZERO.getValue());

答案 2 :(得分:0)

您可以在枚举上实现toString(),以获得所需的空间。