如何格式化ArrayList进行打印?

时间:2014-04-03 23:04:35

标签: java arrays println

我想按特定顺序打印一个数组,但我不知道谷歌是如何帮助我的。

输出:

[PR001, Slinger 6.20, 135, 380, PR002, Strip 1.07, 93, 470, PR003, Hal, 301, 965, PR004, Zolder, 23, 679]

预期产出:

PR001  Slinger 6.20   135   380 
PR002  Strip 1.07     93    470
PR003  Hal            301   965
PR004  Zolder         23    679

我从SQL查询中获取ArrayList:

public ArrayList<String> selectAllePrinters() {
    ArrayList<String> printers = new ArrayList<>();
    try {
        Connection con = SimpleDataSource.getConnection();
        PreparedStatement stat = con.prepareStatement("SELECT * FROM printer;");
        ResultSet result = stat.executeQuery();
        while (result.next()) {
            printers.add(result.getString("printerid"));
            printers.add(result.getString("printernaam"));
            printers.add(result.getString("aantalkleur"));
            printers.add(result.getString("aantalZwart"));
        }
        result.close();
        stat.close();
        return printers;
    } catch (SQLException e) {
        System.out.println(e);
        return null;
    }
}

我该怎么做?提前谢谢!

1 个答案:

答案 0 :(得分:0)

几乎你需要的东西:-)使用标签

List<String> l = new ArrayList<String>(Arrays.asList(ss)){;
    @Override
    public String toString(){
        Iterator<String> it = iterator();
        if (! it.hasNext())
            return "";

        StringBuilder sb = new StringBuilder();
        int i = 0;
        for (;;) {
            i++;
            String e = it.next();
            sb.append(e);
            if (! it.hasNext())
                return sb.toString();
            sb.append('\t');
            if (i%4==0){
                sb.append("\n");
            }
        }
    }
};
System.out.println(l);

要在所需的列之间保持完美的间距,必须迭代所有元素两次,以找到每列的最大宽度。

但是如果标签对你来说没问题(也许你只是想复制并粘贴到电子表格中),你可以尝试这种方式。