我正在尝试重新定义方法toString(),它必须返回一个String,以打印一个名为Card的数组列表,其类型为Card。因为toString()必须返回一个字符串,所以我不能使用循环逐个打印出每个元素,但我想以列表格式打印数组列表。基本上,有没有人知道如何使toString()返回数组列表卡作为字符串而不使用循环?
卡阵列表定义
ArrayList <Card> cards = new ArrayList<Card>();
卡类创建者
Card card1 = new Card(String suit, String rank, int value);
toString方法
public String deckToString(){
return cards;
}
应该打印什么
[suit, rank, value]
[suit, rank, value]
[suit, rank, value]
[suit, rank, value]
etc.
目前打印的内容
[suit, rank, value] [suit, rank, value] etc.
答案 0 :(得分:1)
如果我理解正确, 你想要每个值都在自己的行上。 换句话说,用换行符而不是用逗号连接值。
public String deckToString() {
return String.join("\n", cards.stream().map(Card::toString).collect(Collectors.toList()));
}
答案 1 :(得分:0)
public String deckToString(){
temp="";
for (int i = 0;i<cards.length;i++){
temp+=cards.get(i)+"\n";
return temp;
}
这只是遍历卡片并为每张卡片添加换行符并将其添加到返回字符串中。这类似于janos解决方案,但在视觉上更简单。