(Java)在printf()中设置负宽度?

时间:2013-10-11 01:21:58

标签: java printf

如果实际上没有向左移动任何像素,设置负宽度的重点是什么,例如:

System.out.printf("%-9s", "Name:"); //even though I have -9 it doesn't actually move to the left

然而:

System.out.printf("%9s", "Name:"); //moves Name to the right 9 pixels

那么( - )宽度的点是什么,如果它实际上没有将它向左移动。

***注意:我使用intelliJ所以也许是我的IDE的东西?

1 个答案:

答案 0 :(得分:0)

设置宽度会为输出保留最小的空格数。它不会向左或向右移动。它只是在您指定的宽度边缘右对齐输出。

然后,如果您的输出小于您设置的宽度,它将用空格填充剩余的空格。但是,如果您的输出大于您设置的宽度,它将移动您的输出以适应它。

例如......

System.out.printf("%9s", "Name:");

看起来像:

"    Name:"

虽然:

System.out.printf("%9s", "His Name:");

看起来像:

"His Name:"

同时,-是一个理由说明符,所以:

System.out.printf("%-9s", "Name:");

实际上看起来像是:

"Name:    "

如果您对这些事情有疑问,请尝试更改输出。使用System.out.printf("[%-9s]", "Name:")之类的东西可以使白色空间更加明显。