arraylist java的对齐输出

bvn4nwqk  于 2021-06-26  发布在  Java
关注(0)|答案(1)|浏览(562)

这个问题在这里已经有答案了

有没有一种简单的方法可以将两列输出到java控制台(3个答案)
一小时前关门了。
我是一个java新手,我只想问一些关于如何用align格式从arraylist输出数据的问题,例如:

CustomerNo      Name            PhoneNo            Status
         1       Ali         0177788901         Normal

我尝试了许多方法,例如“/t”:

for(int i = 0; i <= formatCus.size()-1; i++){
            System.out.printf(formatCus.get(i) + "\t");
         }
         System.out.println("");
        for(int i = 0; i <= cusData.size()-1; i++){
            System.out.print(cusData.get(i) + "\t");
         }

以及“%15d”:

for(int i = 0; i <= formatCus.size()-1; i++){
            System.out.printf("%15d",formatCus.get(i));
         }
         System.out.println("");
        for(int i = 0; i <= cusData.size()-1; i++){
            System.out.printf("%15d",cusData.get(i));
         }

但他们中没有一个在工作,所以我想寻求帮助。谢谢你的关注。

4szc88ey

4szc88ey1#

正如评论中提到的,您应该真正将每个客户存储在一个类中,无论如何,基于您当前的尝试,这里有一个脆弱的解决方案:

import java.util.List;

public class Main {
    private static final String COLUMN_FORMAT = "%15s";

    public static void main(String[] args) {
        List<String> columnNames = List.of("CustomerNo", "Name", "PhoneNo", "Status");
        List<String> customerData = List.of("1", "Ali", "0177788901", "Normal",
                                            "2", "Bill", "0277788901", "Good");
        for (String column : columnNames) {
            System.out.printf(COLUMN_FORMAT, column);
        }
        System.out.println();
        for (int i = 0; i < customerData.size(); i += 4) {
            for (int j = i; j < i + 4; j++) {
                System.out.printf(COLUMN_FORMAT, customerData.get(j));
            }
            System.out.println();
        }
    }
}

输出:

CustomerNo           Name        PhoneNo         Status
          1            Ali     0177788901         Normal
          2           Bill     0277788901           Good

相关问题