0

如果它实际上没有向左移动任何像素,那么设置负宽度有什么意义,例如:

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 有关?

4

1 回答 1

0

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

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

例如...

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

看起来像:

"    Name:"

尽管:

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

看起来像:

"His Name:"

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

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

实际上看起来像:

"Name:    "

当你对这些事情有疑问时,试着改变你的输出。使用类似的东西System.out.printf("[%-9s]", "Name:")会使空白更加明显。

于 2013-10-11T01:25:05.280 回答