Я пытаюсь получить символы валют на основе их Locale. Но вместо того, чтобы возвращать символ, он возвращает код. У меня есть фрагмент:
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);
даст мне знак евро, но для doller он даст код вместо знака doller ($).