Во время инициализации валюты я устанавливаю объявление локали locale.US Currency.getInstance (Locale.US), но getSymbol () выдает «US $» и «$ на разных устройствах. GetSymbol () выдает« $ »на samsung, нодает "US $" на мото. Как решить эту проблему.
Из javadoc Currency.getSymbol()
Currency.getSymbol()
Получает символ этой валюты для стандартного языкового стандарта DISPLAY. Например, для доллара США символом является «$», если языком по умолчанию является США, в то время как для других языков это может быть «US $». Если символ не может быть определен, возвращается код валюты ISO 4217. Если языковой стандарт по умолчанию DISPLAY содержит расширение Unicode "rg" (переопределение региона), символ возвращается из этогоМетод отражает значение, указанное в этом расширении. Это эквивалентно вызову getSymbol(Locale.getDefault(Locale.Category.DISPLAY)).
Получает символ этой валюты для стандартного языкового стандарта DISPLAY. Например, для доллара США символом является «$», если языком по умолчанию является США, в то время как для других языков это может быть «US $». Если символ не может быть определен, возвращается код валюты ISO 4217.
DISPLAY
Если языковой стандарт по умолчанию DISPLAY содержит расширение Unicode "rg" (переопределение региона), символ возвращается из этогоМетод отражает значение, указанное в этом расширении.
Это эквивалентно вызову getSymbol(Locale.getDefault(Locale.Category.DISPLAY)).
getSymbol(Locale.getDefault(Locale.Category.DISPLAY))
Здесь описывается причина, по которой вы иногда видите «US $"и иногда просто" $ ".
Если вы хотите получить воспроизводимые результаты, используйте
Currency.getInstance(Locale.US).getSymbol(Locale.US).