【问题标题】:How to align data with different lengths in table format如何以表格格式对齐不同长度的数据
【发布时间】:2021-07-15 04:05:12
【问题描述】:

请注意第 3 行中碰撞列的“0”以及其他数字是如何移动的,有什么解决方法? [

这是我当前的输出 System.out.println(""+容量 +"\t\t\t "+size()+"\t\t "+num+"\t\t"+ 数据 + "\t\t\t" +碰撞)

【问题讨论】:

    标签: java alignment


    【解决方案1】:

    我将从预先计算所有标题字段的长度开始。然后使用它并格式化 io 以编程方式构建表。类似的,

    String[] headings = {
            "Capacity",
            "Size",
            "Num",
            "data",
            "Collisions"
    };
    int[] lengths = new int[headings.length];
    for (int i = 0; i < headings.length; i++) {
        lengths[i] = headings[i].length() + 4;
    }
    int[][] values = {
            { 100, 1, 1, 241, 0 },
            { 100, 2, 1, 289, 0 },
            { 100, 3, 1, 4, 0 }
    };
    for (int i = 0; i < headings.length; i++) {
        System.out.printf("%-" + lengths[i] + "s", headings[i]);
    }
    System.out.println();
    for (int i : lengths) {
        for (int j = 0; j < i; j++) {
            System.out.print("=");
        }
    }
    System.out.println();
    for (int[] arr : values) {
        for (int i = 0; i < arr.length; i++) {
            System.out.printf("%-" + lengths[i] + "s", arr[i]);
        }
        System.out.println();
    }
    

    输出

    Capacity    Size    Num    data    Collisions    
    =================================================
    100         1       1      241     0             
    100         2       1      289     0             
    100         3       1      4       0             
    

    【讨论】:

    • 有没有办法使用 /t 或其他东西......我正在使用链表,似乎必须有更简单的方法来做到这一点?
    • 你已经尝试过了。可能应该在您的问题中包含更多代码。
    猜你喜欢
    • 2018-12-15
    • 2013-04-30
    • 2022-01-04
    • 1970-01-01
    • 2020-08-02
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    相关资源
    最近更新 更多