已知用户不断输入格式为 学号,姓名,性别 的数据,直到输入两个回车结束输入。 数据如: 计科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-19 17:07:03 浏览: 36
下面是补充完整的代码:
```java
import java.util.*;
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 classNum : maleMap.keySet()) {
System.out.printf("[%s] 男生:%d 女生:%d\n", classNum,
maleMap.getOrDefault(classNum, 0), femaleMap.getOrDefault(classNum, 0));
}
}
}
```
代码的核心部分是使用 Map 来记录每个班级的男生和女生数量,然后遍历 Map 输出结果。其中,`getOrDefault()` 方法可以方便地获取指定键对应的值,如果不存在则返回默认值(此处默认为0)。