Java:在同一行上使用printf()进行左对齐和右对齐

Java:在同一行上使用printf()进行左对齐和右对齐,java,printf,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; inde

在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

尝试“%-10s%-10.2f%10.2f%n”哦,我意识到了我的错误。我认为将%10.2f放在最后一列将开始从(0.001245.00,12.98)开始计算空格,因为它们的长度都不同,我认为第三列将偏离1,2,3。我现在明白了,第二列上的-10.2f平均排列了10个空格,所以第三列将在这10个空格之后开始。谢谢大家!