省份城市工具类"/>
java util :获取国家省份城市工具类
java获取全国各地省份、城市名称
自己封装的java工具类,可以用来获取各地的省份城市名称。项目文件存在了云盘,直达链接: 密码:dgcg 一、需要准备一下几个东西: 1. qq安装目录下的地区xml 2.dom4j jar 包 下载地址:.6.1/ 二、代码package cn.wtzvae.util;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;/*** 选择地区工具,包含全国各地省级市级* @author LiuJinan**/
public class LocalUtil {//各地区xml文件路径private static final String LOCAL_LIST_PATH = "config/LocList.xml";//所有国家名称Listprivate static final List<String> COUNTRY_REGION = new ArrayList<String>();private static LocalUtil localutil;private SAXReader reader;private Document document;private Element rootElement; //根元素//初始化private LocalUtil(){//1.读取reader = new SAXReader();try {document = reader.read(LOCAL_LIST_PATH); } catch (DocumentException e) {e.printStackTrace();}//2.获得根元素rootElement = document.getRootElement(); //3.初始化所有国家名称列表Iterator it = rootElement.elementIterator();Element ele = null;while(it.hasNext()){ele = (Element)it.next();COUNTRY_REGION.add(ele.attributeValue("Name"));}}/*** * @author LiuJinan* @TODO 功能: 获取所有国家名称* @time 2016-8-26 上午9:02:05* @return List<String>*/public List<String> getCountry(){return COUNTRY_REGION;}/*** * @author LiuJinan* @TODO 功能: 根据国家名获取该国所有省份* @time 2016-8-26 上午9:07:21* @param countryName 国家名,从getCountry()从取出* @return List<Element>*/private List<Element> provinces(String countryName){Iterator it = rootElement.elementIterator();List<Element> provinces = new ArrayList<Element>();Element ele = null;while(it.hasNext()){ele = (Element)it.next();COUNTRY_REGION.add(ele.attributeValue("Name"));if(ele.attributeValue("Name").equals(countryName)){provinces = ele.elements();break;}}return provinces;}/*** * @author LiuJinan* @TODO 功能: 根据国家名获取该国所有省份* @time 2016-8-26 上午9:07:21* @param countryName 国家名,从getCountry()从取出* @return List<String>*/public List<String> getProvinces(String countryName){List<Element> tmp = this.provinces(countryName);List<String> list = new ArrayList<String>();for(int i=0; i<tmp.size(); i++){list.add(tmp.get(i).attributeValue("Name"));}return list;}/*** * @author LiuJinan* @TODO 功能:根据国家名和省份名,获取该省城市名列表* @time 2016-8-26 上午9:15:24* @param province* @param provinceName* @return*/private List<Element> cities(String countryName, String provinceName){List<Element> provinces = this.provinces(countryName);List<Element> cities = new ArrayList<Element>();if(provinces==null || provinces.size()==0){ //没有这个城市return cities;}for(int i=0; i<provinces.size(); i++){if(provinces.get(i).attributeValue("Name").equals(provinceName)){cities = provinces.get(i).elements();break;}}return cities;}/*** * @author LiuJinan* @TODO 功能:根据国家名和省份名获取城市列表* @time 2016-8-26 下午4:55:55* @param countryName* @param provinceName* @return List<String>*/public List<String> getCities(String countryName, String provinceName){List<Element> tmp = this.cities(countryName, provinceName);List<String> cities = new ArrayList<String>();for(int i=0; i<tmp.size(); i++){cities.add(tmp.get(i).attributeValue("Name"));}return cities;}public static LocalUtil getInstance(){if(localutil==null){localutil = new LocalUtil();}return localutil;}
}
三、测试
package test;import java.util.List;import cn.wtzvae.util.LocalUtil;public class TestLocalUtil {public static void main(String[] args) {LocalUtil lu = LocalUtil.getInstance();List<String> list = lu.getCities("中国", "广东");for(int i=0; i<list.size(); i++){System.out.print(list.get(i) + " ");}}
}
更多推荐
java util :获取国家省份城市工具类
发布评论