ロケールに基づいて通貨の記号を取得しようとしています。ただし、シンボルを返す代わりに、コードを返しています。スニペットがあります:
import java.util.Currency;
import java.util.Locale;
public class CurrencyFormat
{
public void displayCurrencySymbols()
{
Currency currency = Currency.getInstance(Locale.US);
System.out.println("United States: " + currency.getSymbol());
}
public static void main(String[] args)
{
new CurrencyFormat().displayCurrencySymbols();
}
}
Locale.USの場合、シンボルを与えています$
が、置き換えると
Currency currency = Currency.getInstance(Locale.US);
と
Currency currency = Currency.getInstance(Locale.GERMANY);
次に、記号の代わりに国コードを指定します。これはなぜですか、またシンボルを取得する方法は?
編集:いくつかの答えを見た後、特定のデフォルトのローカルを設定することは解決策ではないことを明確にしたいと思います。
例えば
Locale.setDefault(Locale.UK);
ユーロ記号が表示されますが、ドルの場合はドル記号 ($) の代わりにコードが表示されます。