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(是正确的,我想要的是正确的。我在上面的输出中指出"L"是左对齐的,但我希望变量在"R"所在的地方右对齐。我怎样才能右对齐右边的输出(0.20、1.00、9.00(,同时保持左边的输出(苹果、馅饼、奶酪(左对齐?

请参阅格式化数字打印输出

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

您的最后一个参数 %.2f 没有指定要右对齐的字符数。 假设您希望它像其他参数一样为 10 个字符,您可能希望%10.2f .