已知用户不断输入格式为 学号,姓名,性别 的数据,直到输入两个回车结束输入。 数据如: 计科A229101,张三,男 计科A229302,李四,男 计科A229201,张天,女 先要统计每个班的男生和女生数量,请按照输入的班级先显示的方式以格式 [班级名] 男生:人数 女生:人数 如 [计科A2291] 男生:1 女生:0 请根据功能将如下代码补充完整 java.util.Scanner; Test02{ main(String[] args) { Scanner scan=Scanner(System.); String content=; (!.equals(content=scan.nextLine())){ String[] datas=content.split(); } } }
时间: 2023-12-22 18:06:40 浏览: 34
下面是补充完整的代码实现:
```java
import java.util.HashMap;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String content = "";
HashMap<String, Integer> maleCountMap = new HashMap<>(); // 男生数量的映射表
HashMap<String, Integer> femaleCountMap = new HashMap<>(); // 女生数量的映射表
while (!"".equals(content = scan.nextLine())) {
String[] datas = content.split(",");
String className = datas[0].substring(0, 6); // 班级名
String gender = datas[2]; // 性别
if (gender.equals("男")) {
maleCountMap.put(className, maleCountMap.getOrDefault(className, 0) + 1);
} else {
femaleCountMap.put(className, femaleCountMap.getOrDefault(className, 0) + 1);
}
}
for (String className : maleCountMap.keySet()) {
System.out.printf("[%s] 男生:%d 女生:%d\n", className, maleCountMap.getOrDefault(className, 0), femaleCountMap.getOrDefault(className, 0));
}
}
}
```
代码思路:
1. 首先创建了两个HashMap对象来表示班级的男生和女生数量的映射表。
2. 然后在while循环中,不断读取用户输入的数据,每次读取到一条数据后,通过split方法将学号、姓名和性别分离出来。
3. 接着根据学号来获取班级名,这里假设学号的前6位就是班级名,所以可以通过`datas[0].substring(0, 6)`来获取。
4. 然后根据性别将数量加入到相应的映射表中,这里用了HashMap的getOrDefault方法来获取映射表中已经有的班级对应的数量,如果没有则默认为0。
5. 最后遍历班级名对应的男生和女生数量映射表,输出结果即可。
注意事项:
1. 本题中需要读取用户输入的多行数据,直到输入两个回车结束输入,所以在while循环中条件判断为`!"".equals(content = scan.nextLine())`,也就是读取用户输入的一行数据,如果读到的数据不为空字符串,则继续循环;否则跳出循环。
2. 需要注意输入数据格式的正确性,以及班级名的获取方式,本代码中假设学号的前6位就是班级名。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)