2

これが私の問題です:

可能なProductカテゴリのリスト(例:、、Shoes)がありModeWomenこれを特定の名前に変換する必要があります。

例:カテゴリを取得し、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

Java は、Java バージョン 7 未満のオブジェクトで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");
于 2012-08-27T09:17:04.023 に答える