2

在 Java 中,有什么方法可以使用 printf 在字符串末尾添加空格,以确保所有字符串在命令行中的长度相同。

我有一个返回记录的程序,但我需要这样显示它们......

 Bob          27     007895
 Christopher  32     007856

本质上,我希望每个名称占用 30 个字符,以便所有列对齐。目前我在字符串末尾使用选项卡来创建列,但是有些名称会导致所有列都未对齐(克里斯托弗就是其中之一)....所以我假设有更好的方法去做这个?

System.out.print(Bob.getName() + "\t");
System.out.print(Bob.getAge() + "\t");
Sstem.out.print(Bob.getRegnumber() + "\t");
System.out.print(Chris.getName() + "\t");
System.out.print(Chris.getAge() + "\t");
Sstem.out.print(Chris.getRegnumber() + "\t");

我不使用 GUI 输出到命令行。

干杯

4

3 回答 3

4

这是一个备忘单,总结了各种 printf 符号以及如何使用它们。

您想为每个字段指定一个特定的最大大小,以确保所有字段都对齐。如果您没有指定最大尺寸,那么您将再次出现错位。

所以需要类似下面的格式:"%-30.30s %8d %8d\n"

如果最后一个字段是字符串而不是整数,您将需要类似“%-30.30s %8d %10.10s\n”的内容。

"%-30.30s" 将打印左对齐最多 30 个字符。"%10.10s" 将打印最多 10 个字符的右对齐。

于 2012-10-22T11:26:16.223 回答
3
System.out.printf( "%30s %d %d", Bob.getName(), Bob.getAge(), Bob.getRegnumber() );
于 2012-10-22T11:17:21.750 回答
0

You should find the max no. of chars, the name column should have.

Before printing you can get all the values, find the largest length and make the width accordingly.

于 2012-10-22T11:19:20.130 回答