将String映射到String值

时间:2012-08-27 09:13:47

标签: java string converter

这是我的问题:

我列出了可能的Product类别(例如:ShoesModeWomen),我需要将其转换为我的具体名称。

示例:我获得了类别Women,我需要将其转换为Lady's

我需要转换大约40个类别名称。

我的问题是:在JAVA中执行此操作的最佳方式是什么。

我考虑过切换机箱,但我不知道这是一个很好的解决方案。

switch (oldCategoryName) {
    case "Women":
        return "Ladys";
    default:
        return "Default";
}

3 个答案:

答案 0 :(得分:3)

您可以使用静态地图。 制作如下的静态地图

public class PropertiesUtil {
    private static final Map<String, String> myMap;
    static {
        Map<String, String> aMap = new HashMap<String, String>();
        aMap.put("Women", "Ladys");
        aMap.put("another", "anotherprop");
        myMap = Collections.unmodifiableMap(aMap);
    }
}

然后获取替换字符串..

String womenReplace = PropertiesUtil.myMap.get("Women");

答案 1 :(得分:1)

您还可以考虑使用枚举:

 public enum ProductsCategory {
        Mode("MyMode"),
        Shoes("MyShoes"); 

        private String name;

        private ProductsCategory(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }
    }

然后检索:

String myModeStr = ProductsCategory.Mode.getName();

答案 2 :(得分:0)

请注意,对于低于7的Java版本,java switch不适用于String个对象。

您可以在地图中存储值:

// storing
Map<String, String> map = new HashMap<String, String>();
map.put("Women", "Ladys");
// add other values

// retrieving
String ladys = map.get("Women");

或者您也可以使用.properties文件存储所有这些关联,并检索属性对象。

InputStream in = new FileInputStream(new File("mapping.properties"));
Properties props = new Properties();
props.load(in);
in.close();
String ladys = props.getProperty("Women");