一位同学有若干个爱好。扫描一个文件内容,里面有若干位学生,每位学生有若干个爱好,用java写出有几位同学有着与目标学生相同的爱好1,爱好2,爱好3
时间: 2024-03-03 11:51:01 浏览: 24
假设文件内容已经以数组的形式存储在 students 数组中,每个学生的爱好也以数组的形式存储。要求统计有多少个学生的爱好与目标学生的爱好相同,可以使用如下的 Java 代码实现:
```java
public class Student {
private String[] hobbies;
// 构造函数和 getter/setter 方法省略
}
public class Main {
public static void main(String[] args) {
// 读取文件内容,将每个学生的信息存储到数组中
Student[] students = readFromFile();
// 假设目标学生的爱好为 "爱好1", "爱好2", "爱好3"
String[] targetHobbies = {"爱好1", "爱好2", "爱好3"};
int count = 0;
for (Student student : students) {
if (hasSameHobbies(student.getHobbies(), targetHobbies)) {
count++;
}
}
System.out.println("有 " + count + " 个学生的爱好与目标学生的爱好相同");
}
// 判断两个数组是否有相同的元素
private static boolean hasSameHobbies(String[] hobbies1, String[] hobbies2) {
for (String hobby1 : hobbies1) {
for (String hobby2 : hobbies2) {
if (hobby1.equals(hobby2)) {
return true;
}
}
}
return false;
}
// 从文件中读取学生信息,并返回一个 Student 数组
private static Student[] readFromFile() {
// ...
}
}
```
这个程序先读取文件内容,并将每个学生的信息存储到一个 Student 数组中。然后,假设目标学生的爱好为 targetHobbies,使用一个循环遍历每个学生,调用 hasSameHobbies 方法判断该学生的爱好是否与目标学生的爱好相同。如果相同,计数器 count 加 1。最后输出 count 的值,表示有多少个学生的爱好与目标学生的爱好相同。
hasSameHobbies 方法用于判断两个数组是否有相同的元素。它使用两个嵌套循环遍历两个数组中的所有元素,如果找到相同的元素,就返回 true,表示两个数组有相同的元素。如果没有找到相同的元素,就返回 false,表示两个数组没有相同的元素。