2010-05-10 108 views
5

我必须使用表格格式将对象列表打印到文本文件。例如,如果我有Person(具有getName,getAge和getAddress方法)对象的列表,则文本文件应如下所示。如何使用java格式以表格格式打印对象列表

Name  Age  Address 

Abc  20  some address1 
Def  30  some address2 

我可以通过手动编写一些代码来做到这一点,在这里我必须注意空间和格式问题。

我只是好奇他们是否API或工具来做这种格式化工作?

回答

7
import java.util.*; 

public class Test { 

    public static void main(String[] args) { 
     List<Person> list = new ArrayList<Person>(); 
     list.add(new Person("alpha", "astreet", 12)); 
     list.add(new Person("bravo", "bstreet", 23)); 
     list.add(new Person("charlie", "cstreet", 34)); 
     list.add(new Person("delta", "dstreet", 45)); 

     System.out.println(String.format("%-10s%-10s%-10s", "Name", "Age", "Adress")); 
     for (Person p : list) 
      System.out.println(String.format("%-10s%-10s%-10d", p.name, p.addr, p.age)); 
    } 
} 

class Person { 
    String name; 
    String addr; 
    int age; 
    public Person(String name, String addr, int age) { 
     this.name = name; 
     this.addr = addr; 
     this.age = age; 
    } 
} 

输出:

Name  Age  Adress  
alpha  astreet 12   
bravo  bstreet 23   
charlie cstreet 34   
delta  dstreet 45   
+0

真棒!这非常简单而有效。谢谢。 – jgg 2010-05-10 21:40:00

0

使用带有填充字段的printf来达到列对齐。

PrintWriter.printf要具体