在Java中整齐地格式化arraylist的输出列

时间:2014-10-07 15:14:31

标签: java arraylist

我希望输出显示如下。

ID      Name                 Club            Goals
1234    Christiano Ronaldo   Real Madrid     42
321     Rooney               United          32
23122   Angel Di Maria       United          45

这是我到目前为止所尝试过的,但它不起作用:

for (Player p :  players)
{
    System.out.println(p.getID() + "\t" + p.getName() + "\t"
            + p.getClub()  + "\t" + p.getGoals());
    total ++;
}

由于\t像tab一样,俱乐部下的数据总是变得混乱。 我将所有数据都放在ArrayList中。

1 个答案:

答案 0 :(得分:4)

您需要使用System.out.format。

你可以像这样控制字段的长度:

System.out.format("%32s%10d%16s", string1, int1, string2);

将string1,int1和string2分别填充为32,10和16个字符。

有关语法的更多信息,请参阅Javadocs以获取java.util.Formatter(System.out.format在内部使用Formatter)。

此外,FYI,尝试覆盖Player类的ToString()方法,并定义您希望此类如何表示自己。这样就不必拥有重复的代码,您只需说:

p.ToString()

它将打印出它的内容(身份证,姓名,俱乐部,目标)。