根据省份遍历城市 测试

根据省份遍历城市如下图所示:

 *  如果输入的省份不正确,需要重新输入;
 *  如果输入的城市不正确,需要重新输入;

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[] {"济南","青岛","日照","临沂","泰安","聊城","德州"});
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值