根据国家/地区获取货币符号
Posted
技术标签:
【中文标题】根据国家/地区获取货币符号【英文标题】:Get the currency symbol based on country 【发布时间】:2013-08-18 02:52:00 【问题描述】:我有一个显示货币的 TextView。默认情况下,我的 textview 的文本是:$0.00
我怎样才能使$
根据用户选择而变化。
我有以下代码:
Locale locale=new Locale("en", "US");
Currency currency=Currency.getInstance(locale);
String symbol = currency.getSymbol();
Toast.makeText(getActivity(), symbol, Toast.LENGTH_SHORT).show();
其中显示 $
但如果我有以下内容:
Locale locale=new Locale("en", "AU");
Currency currency=Currency.getInstance(locale);
String symbol = currency.getSymbol();
Toast.makeText(getActivity(), symbol, Toast.LENGTH_SHORT).show();
它显示AU$
而不是$
如何在没有所有额外内容的情况下设置货币符号?
【问题讨论】:
你有其他例子说明它对其他国家的货币符号有什么作用吗? 我试过你的代码。它显示“AUD”而不是 AU$。我们不能期望 $ for Locale("en", "AU") 因为它已经用于 Locale("en", "US") 你知道什么最能显示金额吗?我的计算收费 (play.google.com/store/apps/details?id=com.sikni8.tollculator) 的应用程序目前正在使用$
符号,这使得它在美国以外或他们不使用 $
的任何地方都不是用户友好的,所以你认为我能做到的最好方法是什么显示金额?
【参考方案1】:
如果您想要将该格式添加到您拥有的数字中,您可以这样做
myString = NumberFormat.getCurrencyInstance().format(myNumber);
默认 或
myString = NumberFormat.getCurrencyInstance(new Locale("en", "AU")).format(myNumber);
指定
【讨论】:
会不会在任意数字前面加货币符号? 我目前使用以下:tvTotalAmountLabel.setText("$" + tollToString(totalTollAmount));
来显示金额。如何将 $ 替换为 Locale 的货币?
这取决于 tollToString(totalTollAmount)
的作用,但您可以保存您的 numberFormat 实例 NumberFormat numFormat = NumberFormat.getCurrencyInstance();
并且每次需要时都可以像这样使用它 tvTotalAmountLabel.setText(numFormat.format(totalTollAmount));
【参考方案2】:
您可以使用正则表达式来删除所有单词字符。
String symbol = currency.getSymbol().replaceAll("\\w", "");
但是,如果您处理的任何货币符号使用字母,这可能并不理想。
【讨论】:
你知道什么最能显示金额吗?我的计算收费 (play.google.com/store/apps/details?id=com.sikni8.tollculator) 的应用程序目前正在使用$
符号,这使得它在美国以外或他们不使用 $
的任何地方都不是用户友好的,所以你认为我能做到的最好方法是什么显示金额?
在java中它不会显示所有国家/地区的符号所以如果我替换单词就不会有任何东西??以上是关于根据国家/地区获取货币符号的主要内容,如果未能解决你的问题,请参考以下文章