System.out.println("请输入想要存储学生的人数"); Scanner scanner3=new Scanner(System.in); int phone=scanner.nextInt(); System.out.println("请输入学生的信息:"); for (int i=1;i<=phone;i++) { Scanner scanner2=new Scanner(System.in);//往哈西表里存学生的信息并输出; String key=scanner.nextLine(); String value=scanner.nextLine(); map.put(key,value); } for (String key : map.keySet()) { String value = map.get(key); System.out.println(key+value); }这段代码输入输出不一样
时间: 2024-02-14 09:04:33 浏览: 74
根据你提供的代码,我发现在读取学生信息时,使用了两个 Scanner 对象,但是只有一个 Scanner 对象读取了数据。这个问题可能导致读取数据时出现意外的行为。
另外,你在第一行使用了 scanner3 对象来读取数据,但是在第9行却使用了 scanner 对象来读取数据。这也可能导致读取数据时出现问题。
以下是我修改后的代码,可以尝试运行一下看看是否符合你的要求:
```
System.out.println("请输入想要存储学生的人数");
Scanner scanner = new Scanner(System.in);
int phone = scanner.nextInt();
scanner.nextLine(); // 读取多余的回车符,避免影响后续的读取
Map<String, String> map = new HashMap<>();
System.out.println("请输入学生的信息:");
for (int i = 1; i <= phone; i++) {
String key = scanner.nextLine();
String value = scanner.nextLine();
map.put(key, value);
}
for (String key : map.keySet()) {
String value = map.get(key);
System.out.println(key + " " + value);
}
```
修改后的代码在读取学生信息时只使用了一个 Scanner 对象,并且在读取整数后会调用 `nextLine()` 方法来读取多余的回车符,以免影响后续的读取。同时,我也将最后输出的格式修改为了 `key value` 的形式,这样可以更清晰地显示学生信息。
阅读全文
相关推荐


















