如何从字符串构造货币语言环境?
Posted
技术标签:
【中文标题】如何从字符串构造货币语言环境?【英文标题】:How to construct a Currency Locale from a String? 【发布时间】:2013-11-16 19:28:59 【问题描述】:如何从包含字符和数字的字符串中获取语言环境?甚至可能吗?我在java方面不是很先进,我担心这会进入比喻池的更深的一端。
说我有;
String userInput = "250.00 SEK";
从这里我想设备打印“瑞典”的方法。 所以我只知道货币代码,我想要那个地区的 DisplayName。
【问题讨论】:
如果格式比较一致,可以用正则表达式分割字符串 【参考方案1】:假设所有货币都有 3 个字符 (http://www.xe.com/iso4217.php) 你可以
String code = userInput.substring(userInput.length()-3,userInput.length());
state = Currency.valueOf(code);
system.out.print(state.name);
public enum Currency
SEK("Sweden"),
GBP("British Pound");
private String name;
public Currency(String n) this.name = n;
public String toString() return this.name;
【讨论】:
【参考方案2】:我认为您唯一的希望是手动构建Map<String, Locale>
并根据货币字符串末尾的国家/地区代码进行查找。没有自动的方法可以从一种货币转到一个语言环境(至少我知道)
【讨论】:
【参考方案3】:您可以将Currency 类与ISO 4217 中使用的代码结合使用
【讨论】:
【参考方案4】:String userInput = "250.00 SEK";
final Set<Currency> availableCurrencies = Currency.getAvailableCurrencies();
for (Currency availableCurrency : availableCurrencies)
final String currencyCode = availableCurrency.getCurrencyCode();
final String displayName = availableCurrency.getDisplayName();
if (userInput.contains(currencyCode))
System.out.println("Currency is " + availableCurrency.getDisplayName());
货币是瑞典克朗
【讨论】:
【参考方案5】:假设您的字符串中始终有空格,您可以将其按空格拆分,然后通过返回数组中的第二个值获取货币实例。
String userInput = "250.00 SEK";
String[] parts = userInput.split(" ");
Currency currency = Currency.getInstance(parts[1]);
System.out.print(currency.getDisplayName());
【讨论】:
【参考方案6】:String userInput = "250.00 SEK";
final Set<Currency> availableCurrencies = Currency.getAvailableCurrencies();
for (Currency availableCurrency : availableCurrencies)
final String strCode = availableCurrency.getCurrencyCode();
final String currencyCode = strCode;
if (userInput.contains(currencyCode))
for (Locale locale : NumberFormat.getAvailableLocales())
String code = NumberFormat.getCurrencyInstance(locale).getCurrency().getCurrencyCode();
if (strCode.equals(code))
System.out.println(locale.getDisplayCountry());;
会给你:瑞典
【讨论】:
以上是关于如何从字符串构造货币语言环境?的主要内容,如果未能解决你的问题,请参考以下文章