2009-04-03 17 views
22

Locale.getISOCountries()以外は、私はすでにgetting some strange errors with thatだからです。 2文字の国番号と国名を取得する最も良い方法は他にありますか?Javaの国のリストを取得する最良の方法

+0

ここにスタックトレースを貼り付けることはできますか?そしてあなたは使用していますか?または、java.util.Locale.getISOCountries()をインポートせずに、同じLocaleを使用してみてください。 –

答えて

5

をスローしないように、リファレンスオブジェクト(?SoftReference)内のエントリをラップするためにいくつかのコードで投げ、私はから国コードのデータを取りましたISO site

は、次の用心:

  • 名はすべて大文字です。それはそうではないようにそれを微調整したいと思うでしょう。
  • 名前がすべてシンプルなASCIIではありません。
  • 名前は完全に政治的に中立的ではありません(国名のリストは、おそらく不可能です)。たとえば、「台湾、中華人民共和国」という名前があります。問題について学ぶのに適した出発点はthis blog postです。
1
  1. (私が使用したいファイルからこの地図をロードラッピングクラスを作成します
  2. (私はXMLEncoder/XMLDecoderのクラスを示唆)ファイルに保存このページのうち、http://www.theodora.com/country_digraphs.html
  3. を地図を作成します。遅延初期化されたシングルトン)を取得し、get(...)メソッドへのアクセスを許可します。
  4. 上記のWebページの表の各列に対して、これらの手順を繰り返します(または双方向マップを使用します)。
  5. ファンシータイム:地図は別のプロジェクトのためにMemoryErrors
38

を参照してくださいコードスニペット:

String[] countryCodes = Locale.getISOCountries(); 

for (String countryCode : countryCodes) { 

    Locale obj = new Locale("", countryCode); 

    System.out.println("Country Code = " + obj.getCountry() 
     + ", Country Name = " + obj.getDisplayCountry()); 

} 

は、より多くの例については、このcountry list in Javaを参照してください。

関連する問題