gpt4 book ai didi

java - 尝试搜索数组列表时类型不匹配

转载 作者:行者123 更新时间:2023-12-02 01:00:13 25 4
gpt4 key购买 nike

可能是你很容易发现的东西,但我已经坚持这个问题有一段时间了。
我正在尝试在 ArrayList 中搜索特定文本,但搜索方法出现类型不匹配的情况,提示“无法从元素类型 Student 转换为 String” '。我的代码如下:

大学类(class):

import java.util.ArrayList; 
import java.util.Iterator;
import java.util.List;

public class College {

private ArrayList<Student> studentList;

public College()
{
studentList = new ArrayList<Student>();
}

public void join(Student newStudent)
{
studentList.add(newStudent);
}

public int numberOfStudents()
{
return studentList.size();
}

public void searchStudents(String searchString)
{
for(String element : studentList){ //Error occurs here
if(element.contains(searchString)){
System.out.println(element);
}
}
}

public void listmessagesForEach()
{
for(String element : studentList){ //Error occurs here
System.out.println(element);
}
}
}

学生类(class):

public class Student {

private String name;
private int month;
private int number;
private int studentId;

public Student(String name, int month, int number, int studentId)
{
this.name = name;
this.month = month;
this.number = number;
this.studentId = studentId;
}

public String getName()
{
return name;
}

public int getMonth()
{
return month;
}

public int getYear()
{
return number;
}

public int getStudentID()
{
return studentId;
}

}

测试类:

public class Test {


public static void main(String args[]){


College myCollege = new College();


myCollege.join(new Student("Dave Gerry", 2, 1015, 67));
myCollege.join(new Student("Heidi Pollock", 5, 1017, 57));
myCollege.join(new Student("Gary Herr", 7, 1013, 47));

myCollege.numberOfStudents();
System.out.println("The college has " +
myCollege.numberOfStudents() +
" students.");

String s;
s = "Herr";
myCollege.searchStudents(s);

}
}

我需要 searchStudents 来识别列表中的文本。错误可能还与 listmessages 不起作用的原因有关。

这可能是一个简单的问题,只是由于目前无法上课而很难与我的导师联系。

谢谢

最佳答案

studentList 包含 Student 类型的对象,而不是字符串:

public void searchStudents(String searchString) {
for (Student student : studentList) {
if (student.getName().contains(searchString)) {
System.out.println(student.getName());
}
}
}

然后您可以使用 getName() getter 获取学生的姓名。该值是您可以检查的字符串。

关于 listmessages 方法:

public void listmessagesForEach() {
for (Student student : studentList) {
System.out.println(student.getName());
}
}

或者:

public void listmessagesForEach() {
for (Student student : studentList){ //Error occurs here
System.out.println(student);
}
}

但对于最后一个,您应该在 Student 类中添加一个 toString() 方法,该方法返回一个包含其姓名或字段串联的字符串。

关于java - 尝试搜索数组列表时类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60758559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com