2017-03-27 403 views
0

所以我想格式化我的輸出的java格式的表格輸出

System.out.println("Menu:\nItem#\tItem\t\tPrice\tQuantity"); 
    for(int i=0;i<stock.length;i++){ 
     System.out.println((i+1)+"\t"+stock[i].Description + "\t\t"+stock[i].price + "\t"+stock[i].quantity); 

the output should be like

but it comes out as

+0

我建議你做一些研究的printf和字符串#格式 – MadProgrammer

+1

不正確的選項卡格式的東西計數。永遠。只是不要使用它們。 – ajb

回答

1

Java有一個很好的快樂方式,打印出表格使用System.out.format

這裏的一個例子:

Object[][] table = new String[4][]; 
table[0] = new String[] { "Pie", "2.2", "12" }; 
table[1] = new String[] { "Cracker", "4", "15" }; 
table[2] = new String[] { "Pop tarts", "1", "4" }; 
table[3] = new String[] { "Sun Chips", "5", "2" }; 

System.out.format("%-15s%-15s%-15s%-15s\n", "Item#", "Item", "Price", "Quantity"); 
for (int i = 0; i < table.length; i++) { 
    Object[] row = table[i]; 
    System.out.format("%-15d%-15s%-15s%-15s\n", i, row[0], row[1], row[2]); 
} 

結果:

Item#   Item   Price   Quantity  
0    Pie   2.2   12    
1    Cracker  4    15    
2    Pop tarts  1    4    
3    Sun Chips  5    2    
+0

哇感謝的人,我試圖藉助printf做的一樣好 – irrelevent

+1

'System.out.prinf'&'System.out.format'其實都是一樣的東西!如[這個問題]所示(http://stackoverflow.com/questions/16234448/system-out-printf-vs-system-out-format)。 –

+0

噢好吧我終於做了'System.out.printf(「Menu:\ n%-10s%-10s%12s%14s \ n」,「Item#」,「Item」,「Price」,「Quantity」) ; \t \t對(INT I = 0; I irrelevent