java - 如何将缩写映射到完整字符串?

标签 java enums

我想创建从缩写到完整字符串的映射,例如: MC - MasterCard .

我稍后想将该映射用于不知道缩写但只知道完整字符串的 Web 服务。

这些类型的映射应该是枚举还是 HashMap?我可以想到以下解决方案:

对于enum :

String cc = TypeCreditCard.MASTER.getValue("MC").getFullname();
xml.setOrganisation(cc);

静态HashMap<String, String> :

String cc = creditCards.get("MC");
xml.setOrganisation(cc);

您更喜欢什么,为什么?

最佳答案

我将它实现为这样的枚举:

public enum CC {
    MC("MasterCard"),
    V("VISA");

    private CC(String fullString) {
        this.fullString = fullString;
    }

    private String fullString;

    public String getFullString() {
        return this.fullString;
    }

    public static CC of(String fullString) {

        for (CC cc: CC.values()) {
            if (cc.getFullString().equals(fullString) {
                return cc;             
            }
        }
        return null;

    }
}

然后,您可以使用

获取完整字符串
String fullString = CC.MC.getfullScreen();

并使用

获取缩写
CC abbreviation = CC.of("MasterCard");

关于java - 如何将缩写映射到完整字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24238770/

相关文章:

java - 用于 Java 的 JWT(JSON Web token )库

java - 如何禁止枚举的所有值(在数据库级别),除了在java代码中定义之外?(null,empty)

java - Hibernate:最好用的集合类型——bag、idbag、set、list、map

c# - 我怎么知道项目在枚举中?

java - 如何跟踪我的内部框架?

objective-c - 解决循环依赖

c# - 以枚举为键绑定(bind)到字典中的值

c++ - 枚举结构和枚举类有什么区别?

c# - Enum.GetNames() 导致带有负枚举常量的意外顺序

java - UMBC 语义相似性实现