Выходные данные печатаются в одной строке. Как это изменить? - PullRequest
0 голосов
/ 14 апреля 2020

Когда я добавляю более одного члена команды и затем отображаю проект со всеми членами команды, члены команды отображаются в одной строке. Я не могу понять, как отобразить каждого участника под последним. Как бы я это сделал?

public class Company {
    public String projectTitle;
    public int startDate;
    public int endDate;

    private BinaryTree<Project> projects = new BinaryTree<>();

    //constructor
    public Company(String projectTitle, int startDate, int endDate) {
        this.projectTitle = projectTitle;
        this.startDate = startDate;
        this.endDate = endDate;
    }

    //add a project to system
    public void addProject(Project p){
        if(this.projects.add(p))
            System.out.println(p.getTitle() + " added");
        else System.out.println("Project already in system");
    }


     //add team member to project
    public void addTeamMemberToProject(Project project, TeamMember teamMember){
        project.addTeamMember(teamMember);
    }



    //find and display project
    public void findAndDisplayByTitle(String s){
        Project p = findProjectByTitle(s);
        System.out.println(p != null?("Title\t\t\t\t\tMembers\n"+p.toString()):"Project " + s + " not found");
    }

    public Project findProjectByTitle(String s){
        return projects.find(new Project(s, getString("Enter start date"), getString("Enter end date")));
    }

    //display all projects in system
    public void displayAllProjects(){
        String s = projects.toString();
        if(s != null)System.out.println("Title \t\t\t\t\t Member \n" + s);
        else System.out.println("No Projects");
    }
    }



public class Project implements Comparable<Project> {
    private String title;

    //arraylist to store team members
    private ArrayList<TeamMember> teamMembers = new ArrayList<>();

    public Project(String title, String enter_start_date, String enter_end_date) {
        this.title = title;
    }



    @Override
    public boolean equals(Object o) {
        try {
            return this.title.equals(((Project) o).title);
        }catch (Exception e){
            return false;
        }
    }

    //display team members and title
    @Override
    public String toString() {
        String s = title;
        if(teamMembers.isEmpty()) {
            s += "\t\t No Members";
        }else {
            s+="\t\t";
            for (TeamMember t : teamMembers) {
                s += " " + t.getName() + " ";
            }
        }
        return s;
    }


    @Override
    public int compareTo(Project project) {
        return this.title.compareTo(project.title);
    }



    //add team member
    public void addTeamMember(TeamMember teamMember) {
        this.teamMembers.add(teamMember);
    }


    //display sorted array of team members
    public void displayTeamMembers(){
        System.out.println("Name\t\t\t\t\tAge");
        Arrays.sort(teamMembers.toArray());
        for(TeamMember t : teamMembers) System.out.println(t.toString());
    }

    //find team member by name
    public TeamMember findTeamMember(String s){
        for (TeamMember t: teamMembers) {
            if(t.getName().toLowerCase().contains(s.toLowerCase())) return t;
        }
        return null;
    }

    //display team member
    public void displayTeamMember(String string) {
        TeamMember t = findTeamMember(string);
        System.out.println(t!=null?("Name\t\t\t\t\tAge\n"+t.toString()):"Team Member " + null + " not found");
    }

    public ArrayList<TeamMember> getTeamMembers() {
        return this.teamMembers;
    }

    public String getTitle() {
        return title;
    }       
}


public class TeamMember implements Comparable<TeamMember> {

  private String name;
  private int employeeNo;
  private int age;

  //constructor
  public TeamMember(String name, int employeeNo, int age) {
      this.name = name;
      this.employeeNo = employeeNo;
      this.age = age;
  }


  @Override
  public boolean equals(Object o) {
      try {
        return this.name.equals(((TeamMember) o).name);
      }catch (Exception e){
        return false;
      }
  }


  //display name, employeeNo and age of team member
  @Override
  public String toString() {
      return name + "\t\t " + employeeNo + "\t\t " + age;
  }

  public String getName() {
      return name;
  }

  @Override
  public int compareTo(TeamMember teamMember) {
      return this.name.compareTo(teamMember.name);
  }
}

This is the output I'm getting

Я не могу понять, что нужно изменить, чтобы отобразить второго члена команды под первым.

1 Ответ

1 голос
/ 14 апреля 2020
for (TeamMember t : teamMembers) {
                s += " " + t.getName() + " ";
            }

Это ставит всех членов вашей команды в одну строку. Если вы хотите разбить его на строку, попробуйте так:

for (TeamMember t : teamMembers) {
                s += " " + t.getName() + "\n";
            }

\ n в строке приведет к разрыву строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...