使用枚举代替String

she*_*har 0 java string enums

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

private static final String[] tensWords ={ "", " ten", " twenty", " thirty"}
public enum tenWords{ten, twenty, thirty} 
Run Code Online (Sandbox Code Playgroud)

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

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

hoa*_*oaz 5

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

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

    private final String text;

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

    public String getText() {
        return text;
    }
}
Run Code Online (Sandbox Code Playgroud)

还要考虑移动代码以按编号将TensWords确定为枚举作为静态方法.