已知用户不断输入格式为 学号,姓名,性别 的数据,直到输入两个回车结束输入。 数据如: 计科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 20:07:03 浏览: 199
完整代码如下:
```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, int[]> map = new HashMap<String, int[]>();
while (!"".equals(content = scan.nextLine())) {
String[] datas = content.split(",");
String className = datas[0].substring(0, 7);
int[] cnt = map.getOrDefault(className, new int[2]);
if (datas[2].equals("男")) {
cnt[0]++;
} else if (datas[2].equals("女")) {
cnt[1]++;
}
map.put(className, cnt);
}
for (String className : map.keySet()) {
int[] cnt = map.get(className);
System.out.printf("[%s] 男生:%d 女生:%d\n", className, cnt[0], cnt[1]);
}
}
}
```
实现思路:
1. 使用 Scanner 类读取用户输入的数据。
2. 使用 HashMap 存储每个班级的男生和女生数量,键为班级名,值为长度为 2 的 int 数组。
3. 每读取一条数据,从中提取出班级名、性别,并根据性别更新该班级的男生或女生数量。
4. 最后遍历 HashMap,输出每个班级的男生和女生数量。
阅读全文