java - 如何打印格式对齐列列表

标签 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   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
<小时/>
System.out.printf("%4.5s   %-3.20s     %,-9d%10.20s%,9d%n",
     rank,maleName,maleCount,femaleName,femaleCount); 

最佳答案

您使用的字符串格式(如 %4.5s%-3.20s%10.20s)并不像您想象的那样。

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

为了获得一致的格式,字符串格式中 . 之前和之后的数字应该相同。因此,例如,要将 maleName 左对齐,并且无论名称多长,始终精确地使用 20 个字符,然后使用 %-20.20s

关于java - 如何打印格式对齐列列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26403312/

相关文章:

java - 当我使用 poi 和 HSSFListener 处理记录时,如何获取 excel(xls) 单元格注释?

java - Jsoup、java、android studio - 没有结果

java - 预期和接收到的字节数与从 Java 发送 POST 不匹配

r - 设置网格中轴标签的格式

java - 递归方法困惑

css - 我怎样才能打印一个网页,所有的 css 样式都附加到页面上?

redirect - GDB 打印到文件而不是标准输出

html - CSS:@media 打印没有外部 css 文件?

java - 在 Java 中解析用户定义的格式

php - 如何转换yyyy-MM-dd HH :mm:ss to "15th Apr 2010" using PHP