0

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

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

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

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

3 回答 3

5

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

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

    private final String text;

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

    public String getText() {
        return text;
    }
}

还可以考虑将通过数字确定 TensWords 的代码作为静态方法移动到枚举中。

于 2012-12-27T13:25:23.417 回答
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());
于 2012-12-27T13:25:39.533 回答
0

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

于 2012-12-27T13:26:43.323 回答