获取Java国家列表的最佳方法
而不是获取Java国家列表的最佳方法,java,Java,而不是Locale.getISOCountries(),那是因为我已经是。获取两个字母的国家代码和完整的国家名称的最佳方法还有什么 从此页创建地图 将其保存到文件(我建议使用XMLEncoder/XMLDecoder类) 创建一个包装类,从文件中加载这个映射(我将使用一个延迟初始化的单例),并允许访问get(…)方法 对上述网页上表格的每一列重复(或使用双向地图)这些步骤 花式时间:加入一些代码,将条目包装在引用对象(SoftReference?)中,这样映射就不会抛出MemoryError 对
Locale.getISOCountries()
,那是因为我已经是。获取两个字母的国家代码和完整的国家名称的最佳方法还有什么
对于一个单独的项目,我从数据库中获取了国家代码数据 注意以下事项:
- 名字都是大写的。你可能会想要调整它,这样它就不会
- 这些名称并非都是简单的ASCII格式
- 这些名字并非完全政治中立(任何所谓的国家名单可能都不可能是中立的)。例如,“中国台湾省”是一个名称。了解这些问题的一个良好起点是
String[] countryCodes = Locale.getISOCountries();
for (String countryCode : countryCodes) {
Locale obj = new Locale("", countryCode);
System.out.println("Country Code = " + obj.getCountry()
+ ", Country Name = " + obj.getDisplayCountry());
}
有关更多示例,请参阅此部分。您可以使用类似下面的json命令
String jsonString =JSON_DATA;
ObjectMapper mapper = new ObjectMapper();
try {
JsonNode rootNode = mapper.readTree(jsonString);
for (JsonNode node : rootNode) {
String countrycode = node.path("code").asText();
String dialnumber = node.path("dial_code").asText();
String countryname = node.path("name").asText();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
public static String JSON_DATA="
[
{
"name": "Afghanistan",
"dial_code": "+93",
"code": "AF"
},
{
"name": "Aland Islands",
"dial_code": "+358",
"code": "AX"
},
{
"name": "Albania",
"dial_code": "+355",
"code": "AL"
},
{
"name": "Algeria",
"dial_code": "+213",
"code": "DZ"
},
{
"name": "AmericanSamoa",
"dial_code": "+1684",
"code": "AS"
}]";
你能把stacktrace贴在这里吗?您使用的是jdk吗?或者尝试不导入java.util.Locale.getISOCountries(),只是为了确保其与您想要的区域设置相同。以前从未知道存在此区域设置。ISO链接现在已断开……博客帖子链接现在会触发巨大的安全警告。