首页 > 解决方案 > 如何在方法中格式化数组以在不带括号的单独行上返回

问题描述

我正在研究一个 toString 方法,该方法接受一个数组的名称并返回名称和存储在数组中的“任务”。但是,我不确定如何在方法中格式化数组,以便让它在单独的行上打印数组的每个索引。

我有的:

import java.util.ArrayList;
import java.util.Collections;

public class ToDoList implements ToDoListInterface {

    private String name;
    private ArrayList<Task> tasks;

    public ToDoList (String name)
    {
        this.name = name;
        tasks = new ArrayList<Task>();
    }
    public String toString(String name) 
    {
        return "-------------" + "\n" + name + "\n" + "-------------" + "\n" + tasks;
    }

结果:

-------------
To Do List
-------------
[[X]Finish studying, 0, [ ]Last minute cramming, 20, [ ]Finish studying, 0, [ ]Finish studying, 0]

它应该是什么样子:

-------------
My ToDo List
-------------
[X] Finish studying, 0

[ ] Last minute cramming, 20

etc......

标签: java

解决方案


正如@Dave Newton 已经提到的那样,您将不得不遍历您的tasks.

可能的解决方案

public String toString(String name) {
    String ret = "-------------" + "\n" + name + "\n" + "-------------" + "\n";

    for(Task t: tasks) {
        ret += "[" + (t.isFinished() == true ? "X" + : " ") + "] " + t.getTitle() + ", " + task.getDuration()  + "\n";
    }

    return ret;
}

推荐阅读