【问题标题】:How to substitute Currency Strings for Symbols in Android App?如何在 Android 应用程序中用货币字符串替换符号?
【发布时间】:2013-09-21 02:05:20
【问题描述】:

来自 Python 我正在尝试创建一个 Android 应用程序。我现在有一些工作,它应该以多种货币显示金额。在我的数据库中,我将货币存储为三个字母的字符串(“EUR”、“GBP”、“USD”等)。由于我想显示货币符号(€、£、$),我正在考虑如何做到这一点。

我当然可以创建一个 if-elseif-elseif-etc.,但这似乎不是最好的解决方案。我需要能够在应用程序的不同部分重用代码,并将代码放入单独的文件中似乎更合乎逻辑,也许是某种类似于字典的结构。

据我了解,尽管我总是需要在 Java 中创建一个类。这是否也意味着我总是需要创建类的实例/对象才能使用类中的函数?

所以来回答我的问题;有谁知道我可以如何解决这个替代货币字符串换符号问题?欢迎所有提示!

【问题讨论】:

    标签: java android dictionary currency


    【解决方案1】:

    一个有限的解决方案是使用java.util.Currency。您可以执行以下操作

    Currency currency = Currency.getInstance("EUR");
    System.out.println(currency + " " + currency.getSymbol(Locale.ITALY));
    

    打印出来的

    EUR €
    

    这是有限,因为您需要知道一个Locale,它将EUR 正确映射到符号。如果我们有

    Currency currency = Currency.getInstance("EUR");
    System.out.println(currency + " " + currency.getSymbol(Locale.CANADA));
    

    它会打印出来

    EUR EUR
    

    【讨论】:

    • 不,没有限制,完美!我有货币字符串,这样就可以得到符号!非常感谢!
    • @kramer65 不,遗憾的是,货币字符串还不够。你需要一个对应的Locale
    • getSymbol 也可以在不提供语言环境的情况下工作。检查developer.android.com/reference/java/util/Currency.html。感谢您的解决方案!
    • @kramer65 慢点,哈哈。你会注意到它说它相当于getSymbol(Locale.getDefault())。您的默认语言环境可能无法将字符串代码转换为符号。
    • 嗯,你是对的。大多数时候这会很好,但这确实意味着如果加拿大人想使用欧元,它会失败。实际上很奇怪,因为欧元不能指代欧元以外的任何东西,就像美元不能指代美元以外的任何东西一样。还有其他解决方案吗?您是否还有一个建议,我可以创建一个类似字典的对象来将字符串映射到符号或其他东西?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    相关资源
    最近更新 更多