gpt4 book ai didi

java - 如何将ArrayList打印成行和列?

转载 作者:行者123 更新时间:2023-12-01 23:21:32 28 4
gpt4 key购买 nike

我有一个包含 52 张扑克牌的数组列表。我想把它们打印出来into 4 rows and 13 columns like this.现在,我只知道如何将它们全部打印成一条直线,如 this .

这就是我构建数组列表的方式:

    private static void deckOfCards(ArrayList<PlayingCard> cardList)
{
for(SuitEnum s : SuitEnum.values())
{
for(RankEnum r: RankEnum.values())
{
cardList.add(new PlayingCard(s, r));
}
}
}

我当前显示所有扑克牌的方法:

    private static void displayCards(ArrayList<PlayingCard> cardList)
{
for(PlayingCard p : cardList)
{
System.out.print(p);
}
}

如何将卡片漂亮地打印成 4 行 13 列?谢谢。

最佳答案

您可以保留一个索引,以便在每个换行符之前仅打印 13 张卡片,并用空格字符分隔每张卡片,如下所示:

private static void displayCards(ArrayList<PlayingCard> cardList)
{
int idx = 0;
for(PlayingCard p : cardList)
{
System.out.print(p+" ");
if(idx++ == 13)
{
System.out.println();
}
}
}

如果您每次只有 52 张卡片并且它们的顺序已经正确,那么这将非常有效。根据您的屏幕截图,情况似乎确实如此。或者,如果满足相同的条件,您可以执行类似以下操作(不使用 for-each):

private static void displayCards(ArrayList<PlayingCard> cardList)
{
for(int row = 0; row < 4; row++)
{
for(int col = 0; col < 13; col++)
{
System.out.print((col == 0 ? "" : " ") + cardList.get(row*13+col));
}
System.out.println();
}
}

关于java - 如何将ArrayList打印成行和列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58326516/

28 4 0