A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bfl625 中级黑马   /  2014-9-2 21:25  /  1641 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看到一面试题,自己写 了一下,给大家看看,有没有需要改进的地方。
* 请选择操作类型: input,query,detail,quit

* 请输入学生成绩: 张三:80 李四:90 王五:85 赵六:70 quit

* 请输入要查询的学生姓名 张三 80 李四 90 quit

public class Test {
        private static Scanner sc = new Scanner(System.in);
        private static HashMap<String, Integer> hm = new HashMap<>();

        public static void main(String[] args) {
                a: while (true) {
                        System.out.println("请选择操作类型: input,query,detail,quit");
                        String line = sc.nextLine();
                        switch (line) {
                        case "input":
                                input();
                                break;
                        case "query":
                                query();
                                break;
                        case "detail":
                                detail();
                                break;
                        case "quit":
                                break a;
                        default:
                                System.out.println("您选择的操作类型不合法,请选择操作类型: input,query,detail,quit");
                                break;
                        }

                }
        }

        private static void detail() {
                for (String key : hm.keySet()) {                                        //遍历双列集合
                        System.out.println(key + "=" + hm.get(key));        //打印集合中的每一个键和值
                }
        }

        private static void query() {
                System.out.println("请输入要查询的学生姓名");
                while (true) {
                        String line = sc.nextLine();                                        //键盘录入学生姓名(键)
                        if ("quit".equals(line))
                                break;
                        System.out.println(hm.get(line));                                //根据键获取值
                }
        }

        private static void input() {
                System.out.println("请输入学生成绩 格式是: 姓名:成绩");
                while (true) {
                        String line = sc.nextLine();
                        if ("quit".equals(line))
                                break;
                        try {
                                String[] arr = line.split(":");                                //将录入的学生姓名和成绩切割
                                int num = Integer.parseInt(arr[1]);                        //将成绩转换为int值
                                hm.put(arr[0], num);                                                //添加到HashMap集合中存储
                        } catch (Exception e) {
                                System.out.println("您录入的格式非法,格式是: 姓名:成绩");
                        }
                }
        }

}


1 个回复

倒序浏览
楼主继续努力,加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马