java - 如何在方法中格式化数组以在不带括号的单独行上返回
问题描述
我正在研究一个 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......
解决方案
正如@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;
}
推荐阅读
- java - 为什么我不能在 Windows 中创建一个名为“con”的文件夹?
- eclipse - 如何在 Eclipse 的表单编辑器选项卡上显示错误标记图标?
- python - Sklearn中的拟合方法。使用 KNeighborsClassifier 时
- php - 错误:带有时区的时间戳类型的输入语法无效:“09/03/1943 01:00:00 MWT”
- c# - 用于在当前线程上执行代码的 C# 等价的 PostMessage 是什么?
- cmake - QtCreator BareMetal 插件 - 无法激活协议版本:“CMAKE_GENERATOR”已设置但与配置的生成器值不兼容
- kurento - 我没有看到从 Kurento 媒体服务器加载的网页上的视频
- c++ - QMdiSubWindow 关闭后如何删除 QWidget
- android - 使用 Retrofit 将 JSON 对象发布到服务器
- bash - 如何解决这个模棱两可的 Azure 错误?