6

質問 :ユーザーのロケールを確認するために java.util.locale を正しく使用するにはどうすればよいですか?

概要:私が持っているレガシー コードは、Locale で事前定義された static を使用して、ユーザーがたとえばフランスにいるかどうかを確認します...

if(Locale.FRANCE.equals(locale) || Locale.FRENCH.equals(locale)) {
    // do stuff
}

ユーザーがオーストラリアにいるかどうかを確認するコードを追加したいと考えています。ただし、Locale には事前定義された統計の限られたセットしかなく、AUSTRALIA はその 1 つではありません。私は次のことができるようです...

if(new Locale("AU").equals(locale)) {
    // do stuff
}

ただし、これは既存のコードと矛盾しています。それを行う正しい方法は何ですか?最初に挙げた例が正しければ、定義済みの静的リストが限定されているのはなぜですか?

4

1 に答える 1

7

いいえnew Locale( "AU" )、言語は「AU」です(それが何であれ)。2 つの引数のコンストラクターが必要です。

メソッドは、とのLocale.equals()両方を比較します。おそらく次のように確認する必要があります。languagecountryvariant

if ( "AU".equals( locale.getCountry() ) ) { /* do stuff */ }

Locale事前定義された のリストが非常に限られている理由については、合格です。私たちはおそらく、何もないことを光栄に思うべきですen_US:-)

乾杯、

于 2012-11-08T12:26:35.510 に答える