下のソースを見て下さい。
public static void main(String[] args) {
Locale local = new Locale("jp");//1
Locale local = new Locale("ja");//2
Locale local = new Locale("ja","jp"); //3
Locale local = new Locale("jp","ja");//4
System.out.println(local.getDisplayCountry());
System.out.println(local.getDisplayLanguage());
}
1~4のうち、正しく表示されるのはどれとどれでしょうか?
正しく表示された場合は、日本又は日本語又は両方が表示されます。
解答の前に、API仕様を見てみましょう。
Localeクラスのコンストラクタは、String型の引数を1つ~3つとります。
public Locale(String language)
public Locale(String language, String country)
public Locale(String language, String country, String variant)
このようにいずれも第一引数はlanguage = 言語を指定する必要があります。
日本語を意味する言語の指定には、"jp"1ではなく、"ja"を使います。
よって、正解は2と3ですね^^
自分で実行してみて、どのように表示されるか試してみてくださいね。
簡単に解説すると、
1.× 第一引数は国ではなく、言語を指定しなければ、正しく表示されません。
2.○正解 言語だけの指定は問題ありませんので、OKです。
3.○正解 両方指定するときも、言語、国の順で。
4.× やはり第一引数は国ではなく、言語である必要があります。