看到一面试题,自己写 了一下,给大家看看,有没有需要改进的地方。
* 请选择操作类型: 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("您录入的格式非法,格式是: 姓名:成绩");
}
}
}
}
|
|