2014-12-19 16 views
0

在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)右邊對齊輸出,同時保持左邊的輸出(蘋果,餡餅,芝士)左邊的正確?

+0

哦,我意識到我的錯誤。我認爲在最後一列中加上%10.2f將會從(0.00,1245.00,12.98)開始計算空格,並且由於它們的長度都不相同,我認爲第三列將被關閉一,二,三。我現在看到,第二列的-10.2f均勻地分配了10個空格,所以第三列將在這10個空格之後開始。感謝大家! – RedstoneFrogger 2014-12-19 04:55:16

回答

1

你的最後一個參數,%.2f,不指定數目的字符右對齊。假設你想要它是10個字符,就像其他參數一樣,你可能需要%10.2f

相關問題