printf将空格附加到字符串的末尾

时间:2012-10-22 11:13:36

标签: java command-line formatting printf

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

我有一个程序可以返回记录,但我需要将它们显示为......

 Bob          27     007895
 Christopher  32     007856

基本上我希望每个名字占用30个字符,所以列都对齐。目前我在字符串末尾使用一个标签来创建列但是有一些名称会导致所有列错过对齐(Christopher就是其中之一)....所以我假设有一个更好的方法这样做?

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的comandline。

干杯

3 个答案:

答案 0 :(得分:3)

System.out.printf( "%30s %d %d", Bob.getName(), Bob.getAge(), Bob.getRegnumber() );

答案 1 :(得分:3)

以下是cheat sheet that summarizes the various printf symbols以及如何使用它们。

您希望为每个字段指定特定的最大大小,以确保所有字段都排成一行。如果您没有指定最大尺寸,则会再次出现误对齐。

因此需要以下格式:“% - 30.30s%8d%8d \ n”

如果最后一个字段是字符串而不是整数,则需要“%-30.30s%8d%10.10s \ n”这样的字段。

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

答案 2 :(得分:0)

你应该找到最大号码。 chars,名称列应该有。

在打印之前,您可以获取所有值,找到最大长度并相应地设置宽度。