2009-08-31 8 views
12

Jak mogę wykorzystać System.out.print(ln/f) w sposób, który pozwoli mi sformatować moje dane wyjściowe w tabeli?Formatowanie Java println, dzięki czemu mogę wyświetlić tabelę?

Jeśli mam używać printf, jakie formatowanie należy podać, aby uzyskać poniższe wyniki?

Przykład tabeli Chciałbym wydrukować:

n  result1  result2  time1  time2  
----------------------------------------------------- 
5  1000.00  20000.0  1000ms  1250ms 
5  1000.00  20000.0  1000ms  1250ms 
5  1000.00  20000.0  1000ms  1250ms 

Ze wszystkim ustawieni miła i ładna?

+5

Nie odrabiam pracy domowej i uznałem to pytanie za użyteczne – anxiety

Odpowiedz

23

Tak, ponieważ Java 5, klasa PrintStream wykorzystywane do System.out ma metodę printf, dzięki czemu można używać string formatting.


Aktualizacja:

Rzeczywiste polecenia formatowania zależą od danych drukujesz, dokładny odstęp, jaki chcesz, itd. Oto jeden z wielu możliwych przykładów:

System.out.printf("%1s %-7s %-7s %-6s %-6s%n", "n", "result1", "result2", "time1", "time2"); 
System.out.printf("%1d %7.2f %7.1f %4dms %4dms%n", 5, 1000F, 20000F, 1000, 1250); 
System.out.printf("%1d %7.2f %7.1f %4dms %4dms%n", 6, 300F, 700F, 200, 950); 
+1

Co mam umieścić w printf, aby utworzyć nagłówek tabeli? –

+0

Piszesz go tak, jak chcesz go obejrzeć. printf() nie jest table maker. – Esko

3

możesz println("\t"), który drukuje kartę, wszystko łatwo dopasuje.

+4

Nie, jeśli wartości mają różne długości. –

+0

Chociaż '\ t' nie jest idealne, wiele terminali sformatuje tabulatory jako element o zmiennej szerokości, co pozwala łatwo dopasować podobne dane do kolumn. Co więcej, programy arkusza kalkulacyjnego, takie jak Excel, mogą łatwo przetwarzać dane oddzielone tabulatorami (TSV) - osobiście uważam, że format jest bardziej czytelny i łatwiejszy w użyciu niż bardziej popularny CSV. – dimo414

Powiązane problemy