【发布时间】:2021-03-13 07:41:51
【问题描述】:
在调用.toString 方法时,我无法对齐对象数组[] 的输出。
System.out.println(books.toString());
并格式化我的.toString() 以获得像这样的对象变量的对齐方式
public static String header(){
return "%1$-25s %2$-20s %3$-20s %4$-1s";
}
@Override
public String toString(){
return String.format(header(), title, author, copies, "\n");
}
下面是我得到的结果,我想删除每行的第一个字符并让书名排成一行
[To Kill a Mockingbird Harper Lee 30
, 1984 George Orwell 3
, The Lord of the Rings J.R.R. Tolkien 78
, The Book Thief Markus Zusak 32
, The Grapes of Wrath John Steinbeck 67
]
喜欢这个
To Kill a Mockingbird Harper Lee 30
1984 George Orwell 3
The Lord of the Rings J.R.R. Tolkien 78
The Book Thief Markus Zusak 32
The Grapes of Wrath John Steinbeck 67
是否可以使用 .toString() 来执行此操作,或者我是否必须为每个对象使用一个循环来输出我的数据?
【问题讨论】:
-
如果您不想在输出中出现
[ , ]字符,则必须编写自己的打印循环。或者使用Stream和joining()。 -
我想知道
books.toString()甚至给出了那个输出(books是一个数组) -
@user15358848 他在
Book.toString()中添加了一个新行,每本书的 toString 条目都会产生新行。 :p -
@onkar 这不是重点。数组没有实现
toString()方法(OP贴books.toString()),所以使用Object的版本,不输出数组的内容(例如见stackoverflow.com/q/409784/15358848)
标签: java formatting output