根据省份遍历城市如下图所示:
* 如果输入的省份不正确,需要重新输入;
* 如果输入的城市不正确,需要重新输入;
package com.example.wxgzh;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
/**
*如果输入的省份不正确,需要重新输入;
* 如果输入的城市不正确,需要重新输入;
*/
public class CityMapTest {
public static void main(String[] args) {
//1.获取map 遍历map中的key
Map map = CityMap.model;
Set provinces=map.keySet();
for(Object prov :provinces){
System.out.print(prov+"\t\t");
}
//2.根据提示从键盘获取省份值,判断此省份是否存在,
// 若存在,遍历其value中得各个城市,若不存在,提示重新输入
Scanner scanner = new Scanner(System.in);
System.out.println();
String[] city;
while(true){
System.out.println("请选择你所在的省份: ");
String province = scanner.next();
//获取省份对应的各个省份构成的string【】 数组
city= (String[]) map.get(province);
if(city==null || city.length==0 ){
System.out.println("你输入的省份有误请重新输入");
}else {
break;//若输入的用户是存在的,则跳出循环
}
}
//遍历string[]数组 遍历省份中对应的城市
for (int i = 0; i < city.length; i++) {
System.out.print(city[i]+"\t");
}
//3.根据提示从键盘获取城市,遍历各个城市构成得string【】,
//判断此城市是否存在于此数组中,
//若存在 信息登记完毕,若不存在,提示请重新输入
System.out.println();
l:while(true){
System.out.println("请输入你所在的城市:");
String cityCs = scanner.next();
for (int i = 0; i < city.length; i++) {
if(cityCs.equals(city[i])){
System.out.println("信息登记完毕");
break l;//若存在 结束此次for循环,并结束while循环
}
}
//若城市不存在 提示 输入有误
System.out.println("你输入的城市有误,请重新输入");
}
scanner.close();
}
}
/**
* 省份城市信息
*/
class CityMap{
public static Map model = new HashMap();
static {
model.put("北京",new String[] {"北京"});
model.put("辽宁",new String[] {"沈阳","盘锦","铁岭","丹东","大连","锦州","营口"});
model.put("吉林",new String[] {"长春","延边","吉林","白山","白城","四平","松原"});
model.put("河北",new String[] {"承德","沧州","邯郸","邢台","唐山","保定","石家庄"});
model.put("河南",new String[] {"郑州","许昌","开封","洛阳","商丘","南阳","新乡"});
model.put("山东",new String[] {"济南","青岛","日照","临沂","泰安","聊城","德州"});
}
}