gpt4 book ai didi

java - 如何使用非 ISO 3166 国家/地区(如 en_UK)创建货币实例?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:59:40 24 4
gpt4 key购买 nike

在我的应用程序中,我使用 Locale.getDefault() 获取用户的默认语言环境,然后将其传递给 Currency.getInstance(Locale)。它大部分都有效,但我已经开始收到用户的报告,这些报告在堆栈跟踪中显示以下 IllegalArgumentException:

Caused by: java.lang.IllegalArgumentException: Unsupported ISO 3166 country: en_UK at java.util.Currency.getInstance(Currency.java:81) at org.

我原以为 Android 只会返回有效的语言环境,但事实显然并非如此。

如何处理此类情况以确保我只获得有效的 ISO 3166 语言环境?简单的方法是处理这种特殊情况,但如果有的话,我宁愿使用通用解决方案。

谁有这方面的经验?谢谢。

最佳答案

ISO 3166英国的两个字母缩写不是UK,正确的id是GBUK 是出于兼容性原因(过去犯的错误)。

我确实在寻找其他异常(exception)情况,但没有找到,所以现在我只处理特殊情况。

Locale loc = new Locale("en","UK"); // test code

if(loc.getCountry().equals("UK")){
loc = new Locale(loc.getLanguage(), "GB");
}
Currency cur = Currency.getInstance(loc);

关于java - 如何使用非 ISO 3166 国家/地区(如 en_UK)创建货币实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13316719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com