已知用户不断输入格式为 学号,姓名,性别 的数据,直到输入两个回车结束输入。 数据如: 计科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-11-28 19:51:26 浏览: 68
代码实现如下:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String content;
Map<String, Integer> maleMap = new HashMap<>(); // 记录每个班级的男生数量
Map<String, Integer> femaleMap = new HashMap<>(); // 记录每个班级的女生数量
while (!"".equals(content = scan.nextLine())) {
String[] datas = content.split(",");
String classNum = datas[0].substring(0, 7); // 获取班级编号
String gender = datas[2];
if ("男".equals(gender)) {
maleMap.put(classNum, maleMap.getOrDefault(classNum, 0) + 1); // 班级男生数量加1
} else if ("女".equals(gender)) {
femaleMap.put(classNum, femaleMap.getOrDefault(classNum, 0) + 1); // 班级女生数量加1
}
}
// 输出每个班级的男女生数量
for (String key : maleMap.keySet()) {
System.out.printf("[%s] 男生:%d 女生:%d\n", key, maleMap.getOrDefault(key, 0), femaleMap.getOrDefault(key, 0));
}
}
}
```
具体实现思路:
1. 创建两个`Map`,用于记录每个班级的男生数量和女生数量
2. 循环读取用户输入的数据,以空字符串作为结束标志
3. 对于每条数据,从中提取出班级编号和性别信息,根据性别信息更新班级对应的`Map`
4. 循环结束后,遍历每个班级的`Map`,输出对应的班级名以及男女生的数量
阅读全文