Java 如何打印格式对齐列列表

Java 如何打印格式对齐列列表,java,printing,format,alignment,Java,Printing,Format,Alignment,我得到了前两列,但现在我无法将其余的列与其标题对齐 打印什么 Male Female Rank Name Number Name Number 1 Christopher 52,308 Jessica 46,459 2 Matthew 44,783 Ashley 45,548 3 Jo

我得到了前两列,但现在我无法将其余的列与其标题对齐

打印什么

                 Male                       Female
Rank   Name              Number   Name              Number
   1   Christopher     52,308      Jessica   46,459
   2   Matthew     44,783       Ashley   45,548
   3   Joshua     43,203     Brittany   36,535
   4   Daniel     33,791       Amanda   34,389
   5   Nicholas     27,901     Samantha   25,862
   6   Anthony     25,070        Sarah   25,801
   7   William     24,875    Stephanie   24,850
   8   Kyle     22,695     Jennifer   22,217
   9   Jacob     21,992    Elizabeth   20,738


您使用的字符串格式,如
%4.5s
%-3.20s
%10.20s
与您认为的不同

例如,
%10.20s
表示格式化字符串,至少包含10个字符,最多包含20个字符。这将短字符串填充到10个字符,并将长字符串截断到20个字符


要获得一致的格式,字符串格式中
前后的数字应该相同。因此,例如,要左对齐
maleName
,并且无论名称有多长,都要取20个字符,然后使用
%-20.20s

首先,为列指定一个更大的常量。例如,对于列“name”

int columnLength = 15;
在打印“name”之前,计算名称的列长和字符数之间的差值,我们称之为nbSpace

int nbSpace = columnLength - name.length;
String space = "";

for(int i = 0; i < nbSpace; i++) {
    space += " ";
}
int nbSpace = columnLength - name.length;
String space = "";

for(int i = 0; i < nbSpace; i++) {
    space += " ";
}
System.out.print(name+space);