gpt4 book ai didi

java - 尝试从传递到集合的对象中输出字符串

转载 作者:行者123 更新时间:2023-12-02 08:04:45 24 4
gpt4 key购买 nike

我正在尝试从已传递到集合中的对象输出字符串。以下行是我的问题所在。它输出 [alex, jane],但如果格式正确,我相信它应该在 alex jane 处输出。即没有逗号分隔值和数组中的括号。

System.out.print(module.getStudents() + " ");

我尝试了各种解决方案,包括:

System.out.prinf(%s, module.getStudents() + " ");

System.out.prinln(module.getStudents().[whatever Netbeans makes available] + " ");

帮助您更好地理解问题。到目前为止,该应用程序的想法是允许用户搜索模块并返回与其连接的所有学生。驱动程序的完整源代码是:

import java.util.*;

public class Control {

public void run() {

Student jane = new Student("jane");
Student alex = new Student("alex");

Set<Student> students = new HashSet<Student>();
students.add(jane);
students.add(alex);

Module ufce1 = new Module("UFCE1");
Module ufce2 = new Module("UFCE2");

Set<Module> modules = new HashSet<Module>();
modules.add(ufce1);
modules.add(ufce2);

jane.addModule(ufce1);
jane.addModule(ufce2);
alex.addModule(ufce2);

ufce1.addStudent(jane);
ufce2.addStudent(jane);
ufce2.addStudent(alex);

System.out.println("Search module code: ");

Scanner scan = new Scanner(System.in);

scan = new Scanner(System.in);
String searchModule = scan.nextLine().trim();

for (Module module : modules) {
if (searchModule.equalsIgnoreCase(module.getName())) {

Iterator it = students.iterator();
Student student = (Student) it.next();
if (student.getModules().contains(module)) {
System.out.print(student + " ");
}
}
}


}
}

模块类:

import java.util.HashSet;
import java.util.Set;

public class Module {
private String name;
private Set<Student> students = new HashSet<Student>();

public Module(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void addStudent(Student student){
students.add(student);
}

public Set<Student> getStudents() {
return students;
}

@Override
public String toString() {
return name;
}

}

学生类(class):

import java.util.HashSet;
import java.util.Set;

public class Student {
private String name;
private Set<Module> modules = new HashSet<Module>();


public Student(String name) {
this.name = name;

}

public String getName() {
return name;
}

public void addModule(Module module){
modules.add(module);
}

public Set<Module> getModules() {
return modules;
}

@Override
public String toString() {
return name;
}

}

最佳答案

当您执行此操作时,您将隐式调用 HashSet 实例上的 toString 方法。因此,要获得所需的格式,您有 2 个选择:

  1. 迭代该集合并按照您想要的方式打印
  2. 子类化 HashSet 并重写 toString 以按您想要的方式显示。

关于java - 尝试从传递到集合的对象中输出字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8362036/

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