如果我们在数据库中只有国家代码,则获取货币代码

hen*_*les 5 java android currency

我有问题获得国家货币,我通过这些代码在数据库中有国家代码我必须在java中获取国家代码我如何为此制作代码请建议我.我试着用这个例子,但它不起作用.

    class Utils {
    public static SortedMap<Currency, Locale> currencyLocaleMap;
    static {
        currencyLocaleMap = new TreeMap<Currency, Locale>(
                new Comparator<Currency>() {
                    public int compare(Currency c1, Currency c2) {
                        return c1.getCurrencyCode().compareTo(
                                c2.getCurrencyCode());
                    }
                });
        for (Locale locale : Locale.getAvailableLocales()) {
            try {
                Currency currency = Currency.getInstance(locale);
                currencyLocaleMap.put(currency, locale);
            } catch (Exception e) {
            }
        }
    }

    public static String getCurrencySymbol(String currencyCode) {
        Currency currency = Currency.getInstance(currencyCode);
        System.out.println(currencyCode + ":-"
                + currency.getSymbol(currencyLocaleMap.get(currency)));
        return currency.getSymbol(currencyLocaleMap.get(currency));
    }
}

  public class GetCurrency {
    public static void main(String[] args) {

        Utils.getCurrencySymbol(Currency.getInstance("INR").getCurrencyCode());
        Utils.getCurrencySymbol(Currency.getInstance(Locale.JAPAN)
                .getCurrencyCode());
        Utils.getCurrencySymbol(Currency.getInstance(Locale.UK)
                .getCurrencyCode());

        Utils.getCurrencySymbol("INR");
    }
}
Run Code Online (Sandbox Code Playgroud)

Puc*_*uce 9

尝试:

//to retrieve currency code
public static String getCurrencyCode(String countryCode) {
    return Currency.getInstance(new Locale("", countryCode)).getCurrencyCode(); 
}

//to retrieve currency symbol 
public static String getCurrencySymbol(String countryCode) {
    return Currency.getInstance(new Locale("", countryCode)).getSymbol(); 
}
Run Code Online (Sandbox Code Playgroud)


hen*_*les 2

我找到了我的问题的解决方案,这是我所做的代码。

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

    public static String getCurrencySymbol(String currencyCode) {
        String currencySymbol = null;
        if (currencyCode == null || currencyCode.isEmpty()) {
            currencySymbol = currencyCode;
        } else {
            Locale currencyLocale = null;
            Map<Currency, Locale> currencyLocaleMap = null;
            Currency currency = null;
            try {
                currency = Currency.getInstance(currencyCode);
                currencyLocaleMap = getCurrencyLocaleMap();
                currencyLocale = currencyLocaleMap.get(currency);
            } catch (Exception e) {
                System.out.println("No symbol is there for currencyCode="
                        + currencyCode);
            }
            if (currency != null && currencyLocale != null) {
                currencySymbol = currency.getSymbol(currencyLocaleMap
                        .get(currency));
            } else {
                currencySymbol = currencyCode;
            }
        }
        return currencySymbol;
    }
}
Run Code Online (Sandbox Code Playgroud)