3

問題がありますが、今のところ解決策はありません。私が持っているのは、たとえば約300の文字列です。

  1. "USNEWYRK";
  2. "USWSHGNT";

そして、私がしなければならないことは、これらの文字列の1つが要求された文字列であるかどうかを比較し、次のようなものを返すことです。

  1. "アメリカ、ニューヨーク";
  2. "米国、ワシントン";

それで、何か良い解決策はありますか?そして、私はJava1.7を使用できません。たった1.6。

4

3 に答える 3

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 { }は静的初期化子であり、マップなどの静的変数を設定するのに役立ちます。これは{ }、各インスタンスの事前コンストラクター初期化子であるインスタンス初期化子とは異なります。

于 2012-12-24T22:15:13.513 に答える
3

メンテナンスを容易にするために、次を含む CSV ファイルを作成しstringCode;stringValue、アプリケーションの起動時にこのファイルからハッシュ テーブル/マップを作成することができます。

これは次のようになります。

USNEWYRK;USA, New York
USWSHGNT;USA, Washington

これらの値がマップされると、ユーザーが知る必要があるものを簡単に返すことができます。

于 2012-12-24T22:18:34.340 に答える
0

あらゆる種類のハッシュ テーブル/マップが機能するはずです。キーを最初の文字列に、値を 2 番目の文字列にします。

ちなみに、すべてのキーと値を JSON 文字列に入力し、JSON リーダーを使用してマップ オブジェクトに変換することも、コードを記述してそれぞれを個別に入力することもできます。

于 2012-12-24T22:14:55.783 に答える