Java:使用printf()同时左对齐和右对齐SAME行

时间:2014-12-19 04:23:40

标签: java printf

在Java中,我如何使用printf()来左右对齐和右对齐相同行的输出? 这是所有左对齐的代码:

System.out.println("   ********************L********R");
String[] array = {"apple", "pie", "cheese"};
double[] array2 = {0.003, 1245, 19.979};
double[] array3 = {0.2, 1, 9};
for (int index = 0; index < array.length; index++)
{
    System.out.printf("   %-10s%-10.2f%.2f%n", array[index], array2[index], array3[index]);
}

这是所有左对齐的输出:

   ********************L********R
   apple     0.00      0.20
   pie       1245.00   1.00
   cheese    19.98     9.00

如果第三个元素(0.20,1.00,9.00)的正确合理,我想要的是什么。我在上面的输出中指出&#34; L&#34;是左对齐,但我希望变量是正确的,其中&#34; R&#34;是。我怎样才能正确地对齐右边的输出(0.20,1.00,9.00),同时保持左边的输出(苹果,馅饼,奶酪)左对齐?

2 个答案:

答案 0 :(得分:1)

您的上一个参数%.2f未指定右对齐的字符数。假设您希望它像其他参数一样是10个字符,您可能需要%10.2f

答案 1 :(得分:0)

请参阅Formatting Numeric Print Output

尝试System.out.format(" %-10s%-10.2f%10.2f%n")