静态Map实例-从键盘获取省份,判断此省份是否存在,如果存在遍历器value中的各个城市

该程序创建了一个Map对象存储省份及其对应的城市列表。用户通过键盘输入省份,程序检查输入是否有效。如果省份存在,程序列出该省份的所有城市,然后让用户输入城市,检查城市是否在已知的城市列表中。如果城市存在,信息登记完成;否则,提示用户重新输入。
摘要由CSDN通过智能技术生成
1.获取map,并遍历map中所有的key
2.根据提示,从键盘获取省份,判断此省份是否存在,如果存在遍历器value中的各个城市
如果不存在提示用户从新输入
3.从键盘获取城市,遍历各个城市构成的String[],判断输入的城市是否存在此数组中
如果存在,信息登记完毕。如果不存在,提示用户重新输入
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 province : provinces) {
            System.out.println(province + "\t\t");
        }

        //2.根据提示,从键盘获取省份,判断此省份是否存在,如果存在遍历器value中的各个城市
        //如果不存在提示用户从新输入
        Scanner scan = new Scanner(System.in);
        String[] cities;
        while (true) {
            System.out.println("请选择你所在的省份:");
            String province = scan.next();
            //获取省份对应的各个城市构成的String[]
            cities = (String[]) map.get(province);
            if (cities == null || cities.length == 0) {
                System.out.println("你输入的省份有误,请重新输入");
            } else {
                break; //意味着用户输入的省份是存在的,则跳出当前循环
            }
        }
        for (int i = 0; i < cities.length; i++) {
            System.out.println(cities[i] + "\t\t");
        }
        //3.从键盘获取城市,遍历各个城市构成的String[],判断输入的城市是否存在此数组中
        //如果存在,信息登记完毕。如果不存在,提示用户重新输入
        l:
        while (true) {
            System.out.println("请选择你所在的城市:");
            String city = scan.next();
            //方式一
//            for (int i = 0; i < cities.length; i++) {
//                if (city.equals(cities[i])) {
//                    System.out.println("信息登记完毕");
//                    break l; //标签
//                }
//            }  System.out.println("输入的城市有误,请重新输入");
            //方式二
            if(containsCity(cities,city)){
                System.out.println("信息登记完毕");
                break;
            }
                System.out.println("输入的城市有误,请重新输入");
        }
        scan.close();
    }
    //第二种方式来处理城市是否存在


    public static boolean containsCity(String[] cities, String city) {
        for (int i = 0; i < cities.length; i++) {
            if (city.equals(cities[i])) {
                return true;
            }
        }
        return false;
    }
}
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[]{"济南","青岛","日照","临沂","泰安","聊城","德州"});
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆粉今天敲了吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值