问题:如何使我的字符串看起来像这样,而不是使用(String Builder)
应该是什么样的:
"刺客信条四:黑旗",发布日期:2013年11月29日
"光之子",发布日期:2014年5月1日
"龙腾世纪:宗教裁判所",发布日期:2014年12月18日
我知道应该使用某种形式的StringBuilder但是我不知道如何格式化它。正如我的游戏打印为:
我的样子:
<&P> [&#34;刺客信条四:黑旗&#34;,发布日期:2013年11月29日&#34;光之子&#34;,发布日期:2014年5月1日 &#34;龙腾世纪:宗教裁判所&#34;,发布日期:2014年12月18日]下面是我的代码片段 - 日期显示正常,只是它们没有分成多行
@Override
public String toString() {
DateFormat date = new SimpleDateFormat("MMM dd, yyyy");
return("\"" + game + "\"" + ", " + "released on: " + date.format(released.getTime()));
}
答案 0 :(得分:0)
问题是你在一个没有在每个元素的toString之间添加换行符的集合上调用toString。
一种解决方案是迭代集合并在每个项目上调用System.out.println。
另一个解决方案是将List转换为流,然后使用流API将每个项映射到其toString,然后使用&#34; \ n&#34;作为分离者,例如
myList.stream().map(g -> g.toString()).collect(Collectors.joining("\n"))
答案 1 :(得分:0)
由于您没有告诉我声明的toString
方法是哪个类,我将其称为ClassA
。
您在评论中说您正在使用链接列表来存储ClassA
个对象。因此,我将向您展示如何在链表中打印每个项目:
StringBuilder builder = new StringBuilder(); // StringBuilder is used to concatenate all the items in the list
for (ClassA item : theLinkedList) {
builder.append(item.toString());
builder.append("\n"); // Here I add the new line
}
System.out.println(builder);
如果您使用的是Java8,您可以使用stream
和`map来执行此操作,如Gene Taylor的答案所示。它更优雅。