2009-08-31 7 views
12

System.out.print(ln/f)を使用して、出力を表形式にフォーマットする方法はありますか?テーブルを表示できるようにJavaのprintlnフォーマットですか?

printfを使用する場合は、以下の結果を得るためにどのような書式を指定する必要がありますか?

例表Iは、印刷したい:

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 

素晴らしく、かなり並んですべてに?

+5

私は宿題をしていないので、この質問が役に立ちました – anxiety

答えて

23

あなたはstring formatting.


を使用できるように、はい、Javaの5以来、System.outに使用PrintStreamクラスが更新、printf方法があります。

実際の書式化コマンドは、データに依存あなたは印刷しています、あなたが望む正確な間隔など。ここにいくつかの例があります:

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

テーブル見出しを作るにはprintfに何を入れますか? –

+0

あなたはそれを見たいと思うように書きます。 printf()はテーブルメーカーではありません。 – Esko

3

println("\t")でタブを印刷すると、簡単にすべてを整列できます。

+4

値の長さが異なる場合はありません。 –

+0

'\ t'は完璧ではありませんが、多くの端末はタブを可変間隔要素としてフォーマットし、同様のデータを簡単に列に整列させます。さらにExcelのようなスプレッドシートプログラムでは、タブ区切りのデータ(TSV)を簡単に解析できます。個人的には、より一般的なカンマ区切り(CSV)よりも読みやすく作業が容易です。 – dimo414

関連する問題