1. 找出班级所有姓氏

可以通过遍历字符串,找到每个名字的姓氏,然后加入一个Set集合中,最后转换为List返回即可。

Set surnameSet = new HashSet<>(); String[] names = s.split("\n"); for (String name : names) { String surname = name.substring(0, 1); surnameSet.add(surname); } List surnames = new ArrayList<>(surnameSet);

  1. 将每个姓氏的学生找出,各自放入List集合;组合成一个List<List>集合

可以通过遍历字符串,找到每个名字的姓氏,然后根据姓氏将学生放入对应的List中,最后将所有List组合成一个List<List>集合返回即可。

List<List> studentsBySurname = new ArrayList<>(); for (String surname : surnames) { List students = new ArrayList<>(); for (String name : names) { if (name.startsWith(surname)) { students.add(name); } } studentsBySurname.add(students); }

  1. 找出学生最多的姓氏是什么,有多少人

可以遍历List<List>集合,统计每个姓氏的学生数量,然后找到最多的那个姓氏即可。

int maxStudents = 0; String maxSurname = ""; for (List students : studentsBySurname) { int numStudents = students.size(); if (numStudents > maxStudents) { maxStudents = numStudents; maxSurname = students.get(0).substring(0, 1); } } System.out.println("学生最多的姓氏是:" + maxSurname + ",有" + maxStudents + "名学生");

  1. 有哪些姓氏,只有一名同学

可以遍历List<List>集合,找到每个只有一个学生的姓氏,然后放入一个Set集合中返回即可。

Set singleStudents = new HashSet<>(); for (List students : studentsBySurname) { if (students.size() == 1) { String surname = students.get(0).substring(0, 1); singleStudents.add(surname); } } System.out.println("只有一名同学的姓氏有:" + singleStudents)

JAVA 已知字符串String s=解梓n + 闫励鑫n + 王炳权n + 狄泉宇n + 杨士豪n + 王帅雨n + 刘亚隆n + 高蒙蒙n + 王鑫n + 闫一帆n + 郭江炜n + 靳炎睿n + 成宗汶n + 王

原文地址: https://www.cveoy.top/t/topic/fgZk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录