java—如何以表格格式对齐不同长度的数据

hts6caw3  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(455)

请注意第3行中collisions列的“0”以及其他数字是如何移位的,对此有何修正[

这是我当前的输出系统.out.println(“+容量+”\t\t\t“+大小()+”\t\t“+数值+”\t\t“+数据+”\t\t“+冲突)

icomxhvb

icomxhvb1#

我首先要预先计算所有头字段的长度。然后使用它和格式化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

相关问题