这是我的问题:
我列出了可能的Product
类别(例如:Shoes
,Mode
,Women
),我需要将其转换为我的具体名称。
示例:我获得了类别Women
,我需要将其转换为Lady's
。
我需要转换大约40个类别名称。
我的问题是:在JAVA中执行此操作的最佳方式是什么。
我考虑过切换机箱,但我不知道这是一个很好的解决方案。
switch (oldCategoryName) {
case "Women":
return "Ladys";
default:
return "Default";
}
答案 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");