Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get currency symbol by currency name?

I want get Currency symbol (like $ or £) by currency name (like USD or EUR).

For English(US) I can get symbol (if English(US) set as language on device):

Currency currency = Currency.getInstance(Locale.getDefault()); String symbol = currency.getSymbol()); // $ 

How can I get symbol for currency by currency name using android tools -

someMethod (String currCode) { // currCode - USD, EUR, UAH     return currSymbol;       // $... } 
like image 589
MyNameIs Avatar asked Mar 28 '16 08:03

MyNameIs


People also ask

How do you make the currency symbol?

The getSymbol() method is used to get the symbol of a given currency for the default DISPLAY locale. For example, for the US Dollar, the symbol is "$" if the default locale is the US, while for other locales it may be "US$". If no symbol can be determined, the ISO 4217 currency code is returned.

How do I get the currency symbol from locale?

The getSymbol() method is used to get the symbol of invoking currency for the default locale.

How do you get different currencies on a keyboard?

Press and hold the dollar sign on the Android ? 123 keyboard to see the other currency characters available, including the euro.


2 Answers

You can try some like this:

public class MainActivity extends AppCompatActivity {       @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          Utils.getCurrencySymbol(Currency.getInstance(Locale.US).getCurrencyCode());         Utils.getCurrencySymbol(Currency.getInstance(Locale.JAPAN).getCurrencyCode());         Utils.getCurrencySymbol(Currency.getInstance(Locale.UK).getCurrencyCode());          //for your case that you want to get Euro symbol because France are with Euro symnol             Utils.getCurrencySymbol(Currency.getInstance(Locale.FRANCE).getCurrencyCode());         //you can get symbol also if you write string of your desired currency         Utils.getCurrencySymbol("INR");       }       static 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));         }      } } 
like image 155
Kristiyan Varbanov Avatar answered Oct 11 '22 13:10

Kristiyan Varbanov


Currency symbol depends on location. The same $ sign means different currencies in US and Australia. So, to get the correct symbol you have to provide the Locale instance. Otherwise, a default locale will be applied, which will result in different values for different devices.

    Locale uk = new Locale("en", "GB");     Currency pound = Currency.getInstance("GBP");     pound.getSymbol(uk); 
like image 31
dev.bmax Avatar answered Oct 11 '22 14:10

dev.bmax