2

这是我的问题:

我有可能的Product类别列表(例如:、、、ShoesModeWomen我需要将其转换为我的特定名称。

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

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

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

我考虑过开关盒,但我不知道这是一个好的解决方案。

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

3 回答 3

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");
于 2012-08-27T09:26:48.477 回答
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();
于 2012-08-27T09:35:34.283 回答
0

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

您可以将值存储在地图中:

// 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");
于 2012-08-27T09:17:04.023 回答