当用户从Locale类的Java中选择特定国家/地区时,是否可以获取所有状态的列表?我能够从Locale类中获取所有国家/地区的列表。但Locale类不提供状态。他们是其他任何方式吗?或者是否有我可以使用的网络服务?
任何帮助将不胜感激。在此先感谢:)
答案 0 :(得分:0)
除了使用Google地图API之外,可能还需要您进行全职连接...有一个数据集包含所有本地人GeoNames。您可以在SqLite数据库中使用它。
答案 1 :(得分:-1)
试试这个:
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
public class Country {
public void getCountries{
List<Country> countries = new ArrayList<Country>();
Locale[] locales = Locale.getAvailableLocales();
for (Locale locale : locales) {
String iso = locale.getISO3Country();
String code = locale.getCountry();
String name = locale.getDisplayCountry();
if (!"".equals(iso) && !"".equals(code) && !"".equals(name)) {
countries.add(new Country(iso, code, name));
}
}
Collections.sort(countries, new CountryComparator());
for (Country country : countries) {
System.out.println(country);
}
}
}
class CountryComparator implements Comparator<Country> {
private Comparator comparator;
CountryComparator() {
comparator = Collator.getInstance();
}
public int compare(Country o1, Country o2) {
return comparator.compare(o1.name, o2.name);
}
}
class Country {
private String iso;
private String code;
public String name;
Country(String iso, String code, String name) {
this.iso = iso;
this.code = code;
this.name = name;
}
public String toString() {
return iso + " - " + code + " - " + name.toUpperCase();
}
}