我有一个表单,用户输入国家/地区名称,然后我必须将其转换为 iso2 或 iso3 代码。
这怎么可能?我不想使用 map ,因为它似乎没有在我的 Android 应用程序上运行。
此代码用于将 iso2 转换为实际名称,我想要相反的方式:
Locale l = new Locale("", "CH");
System.out.println(l.getDisplayCountry());
最佳答案
您尝试过 Locale.getISO3Country() 吗?
要实际进行转换,您可能需要循环遍历所有可用的区域设置,并查找 getDisplayCountry() 与您输入的国家/地区名称匹配的区域设置。
这听起来效率不高(但你说过不要使用 map ),但你可以尝试类似的方法:
Locale convertCountryNameToIsoCode(String countryName)
for(Locale l : Locale.getAvailableLocales()) {
if (l.getDisplayCountry().equals(countryName)) {
return l;
}
}
return null;
}
http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#getISO3Country()
但是,如果输入来自网络表单,则直接将国家/地区代码设置为网络表单输入值会更容易。如果输入来自 Android native 应用程序,那么我不确定,但我敢打赌您可能会遇到类似的事情
关于java - 如何通过区域设置从国家/地区名称获取 iso2code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20198644/