【问题标题】:How to get the currency symbol for particular country using locale?如何使用语言环境获取特定国家/地区的货币符号?
【发布时间】:2015-07-10 06:09:07
【问题描述】:

我已经尝试过这段代码,它给了我一些国家/地区的Country Code,而不是currency symbol

我想要的是货币符号而不是代码

数组资源列表包含所有国家及其代码

String m= (String) Array.get(recourseList,i);
String[] ma=m.split(",");
Locale locale=new Locale("en", ma[1]);
Currency currency= Currency.getInstance(locale);
String symbol = currency.getSymbol();
((TextView) finalV.findViewById(R.id.currencySymbolid)).setText(symbol);

【问题讨论】:

  • 你想要货币代码还是货币符号?
  • 我正在寻找符号
  • 虽然您正在寻找符号,但请注意,有时货币代码同样重要。您可能希望同时包含两者。例如,美国和加拿大都使用 $,但没有代码就无法判断它是美元还是加元。
  • 我只需要我的应用程序中的符号

标签: java locale currency


【解决方案1】:

Currency 规范中说:

getSymbol() 获取默认语言环境下该货币的符号。 例如,对于美元,如果默认符号为“$” 语言环境是美国,而对于其他语言环境,它可能是“US$”。如果不 可以确定符号,返回ISO 4217货币代码。

已编辑 我找到了解决这个问题的方法

import java.util.Currency;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

public class CurrencyCode
{

    public static void main() {
        Map<Currency, Locale> map = getCurrencyLocaleMap();
        String [] countries = { "US", "CA", "MX", "GB", "DE", "PL", "RU", "JP", "CN" };

        for (String countryCode : countries) {
           Locale locale = new Locale("EN",countryCode);
           Currency currency = Currency.getInstance(locale);
           String symbol = currency.getSymbol(map.get(currency));
           System.out.println("For country " + countryCode + ", currency symbol is " + symbol);
        }
    }

    public static Map<Currency, Locale> getCurrencyLocaleMap() {
       Map<Currency, Locale> map = new HashMap<>();
        for (Locale locale : Locale.getAvailableLocales()) {
           try {
             Currency currency = Currency.getInstance(locale);
             map.put(currency, locale);
           }
           catch (Exception e){ 
             // skip strange locale 
           }
        }
        return map;
    }
}

打印出来:

For country US, currency symbol is $
For country CA, currency symbol is $
For country MX, currency symbol is $
For country GB, currency symbol is £
For country DE, currency symbol is €
For country PL, currency symbol is zł
For country RU, currency symbol is руб.
For country SE, currency symbol is kr
For country JP, currency symbol is ¥
For country CN, currency symbol is ¥

【讨论】:

  • 我明白,但请检查我的代码,我正在更改本地
  • 你使用什么语言环境?
  • 我在问题本身中已经明确提到resourcelist包含所有国家代码
  • 国家代码是什么??我给的那个?
  • 这些是ISO 国家代码
猜你喜欢
  • 1970-01-01
  • 2013-08-18
  • 2014-12-28
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-10
相关资源
最近更新 更多