Currency.getSymbol将给我一个主要符号(例如美元的"$"),但我想得到次要单位(例如英镑的"p"或美元的美分符号),而不写我自己的查找表.
是否有标准,即内置方式来做到这一点?
Zaw*_* oo -1
我想建议针对这种情况使用 custom custom currency format。使用DecimalFormator NumberFormatofjava.text.*包。\n有很多这样的例子。
例子
\n\npublic class CurrencyFormatExample {\n public void currencyFormat(Locale currentLocale) {\n Double currency = new Double(9843.21);\n NumberFormat currencyFormatter;\n String currencyOut;\n currencyFormatter = NumberFormat.getCurrencyInstance(currentLocale);\n currencyOut = currencyFormatter.format(currency);\n System.out.println(currencyOut + " " + currentLocale.toString());\n }\n\n public static void main(String args[]) {\n Locale[] locales = new Locale[]{new Locale("fr", "FR"),\n new Locale("de", "DE"), new Locale("ca", "CA"),\n new Locale("rs", "RS"),new Locale("en", "IN")\n };\n CurrencyFormatExample[] formate = new CurrencyFormatExample[locales.length];\n for (int i = 0; i < locales.length; i++) {\n formate[i].currencyFormat(locales[i]);\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n输出:
\n\n9\xc3\x82 843,21 \xc3\xa2?\xc2\xac fr_FR\n\n9.843,21 \xc3\xa2?\xc2\xac de_DE\n\nCAD 9.843,21 ca_CA\n\nRSD 9,843.21 rs_RS\n\nRs.9,843.21 en_IN\nRun Code Online (Sandbox Code Playgroud)\n\n参考这里:
\n\n小货币更新
\n\n Locale locale = Locale.UK;\n Currency curr = Currency.getInstance(locale);\n\n // get and print the symbol of the currency\n String symbol = curr.getSymbol(locale);\n System.out.println("Symbol is = " + symbol);\nRun Code Online (Sandbox Code Playgroud)\n\n输出 :
\n\nSymbol is = \xc2\xa3\nRun Code Online (Sandbox Code Playgroud)\n