問題がありますが、今のところ解決策はありません。私が持っているのは、たとえば約300の文字列です。
- "USNEWYRK";
- "USWSHGNT";
そして、私がしなければならないことは、これらの文字列の1つが要求された文字列であるかどうかを比較し、次のようなものを返すことです。
- "アメリカ、ニューヨーク";
- "米国、ワシントン";
それで、何か良い解決策はありますか?そして、私はJava1.7を使用できません。たった1.6。
問題がありますが、今のところ解決策はありません。私が持っているのは、たとえば約300の文字列です。
そして、私がしなければならないことは、これらの文字列の1つが要求された文字列であるかどうかを比較し、次のようなものを返すことです。
それで、何か良い解決策はありますか?そして、私はJava1.7を使用できません。たった1.6。
キーから値へのマップを作成し、最初の値をキーとして検索するだけで値が得られます。
または、列挙型がキーで、列挙型の toString が値である列挙型を作成することもできます。
この種の状況では、列挙型よりもマップソリューションを好みます。
地図の例
public abstract class LocationHelper {
public static Map<String, String> locations = new HashMap<String, String>();
static {
//either put individual elements into the map or
//read in from external file etc.
}
}
別のクラスでは、次のようにして値を取得できます。
System.out.println(LocationHelper.locations.get("USNWYRK"));
これにより、「USA、ニューヨーク」が出力されます
ブロックに慣れていない人にとっては、これstatic { }
は静的初期化子であり、マップなどの静的変数を設定するのに役立ちます。これは{ }
、各インスタンスの事前コンストラクター初期化子であるインスタンス初期化子とは異なります。
メンテナンスを容易にするために、次を含む CSV ファイルを作成しstringCode;stringValue
、アプリケーションの起動時にこのファイルからハッシュ テーブル/マップを作成することができます。
これは次のようになります。
USNEWYRK;USA, New York
USWSHGNT;USA, Washington
これらの値がマップされると、ユーザーが知る必要があるものを簡単に返すことができます。
あらゆる種類のハッシュ テーブル/マップが機能するはずです。キーを最初の文字列に、値を 2 番目の文字列にします。
ちなみに、すべてのキーと値を JSON 文字列に入力し、JSON リーダーを使用してマップ オブジェクトに変換することも、コードを記述してそれぞれを個別に入力することもできます。