私は学校で真剣な低レベルのプログラミングコースを受講する機会がありませんでした。 (私は本当に「舞台裏」をより良いプログラマーになるために学び続けるべきだと知っています。)System.out.print
ステートメントに何かを貼り付ける機能を含め、Javaの便利さを高く評価しています。ただし、代わりにSystem.out.printf
を使用する理由はありますか?
また、「実際のアプリケーション」では、このような印刷呼び出しを回避する必要がありますか?おそらく、なんらかのUI関数を使用してクライアントのディスプレイにメッセージを印刷する方がよいでしょう。
PrintStream クラスの printf
メソッドは、Cのprintf
関数に似た 文字列フォーマット を提供します。
printf
のフォーマットは Formatter
クラスのフォーマット構文 を使用します。
printf
メソッドは、複数の変数を1行で表示するときに特に役立ちます。これは、文字列の連結を使用すると面倒です。
int a = 10;
int b = 20;
// Tedious string concatenation.
System.out.println("a: " + a + " b: " + b);
// Output using string formatting.
System.out.printf("a: %d b: %d\n", a, b);
また、Javaアプリケーションを書くことは、必ずしもGUIアプリケーションを書くことを意味しないので、コンソールアプリケーションを書くときは、print
、println
、printf
およびSystem.out
に出力されるその他の関数。
浮動小数点数の精度を制御したり、パディングを行ったりする必要がある場合は、より良い方法です。System.out.printは、あらゆる種類のものを出力できますが、精度とパディングをきめ細かく制御することはできません。
通常、「実際の」アプリケーションでは、Java.util.LoggingやCommons Loggingなどのログシステムに書き込みます。これらのログには、さまざまなレベルの詳細度(つまり、本番環境では無効になる「デバッグ」モード)を記録する機能があります。 )。ただし、迅速でダーティな一時デバッグの場合、System.out.println()が最も簡単な方法です(ランタイム環境が標準出力を読み取り可能な場所にダンプする場合)。
また、いつでも「String.format()」を使用して、フォーマットと変数の引数リストを使用して文字列を作成できることにも触れておきます(その後、この文字列をロギングメソッドまたはSystem.out.printlnに渡します)。これは多くの場合、一連の変数を文字列に連結するよりも優れています。
ほとんどの実際のプログラムの場合、ロギングが使用されます。デバッグメッセージは、ロギング構成を介してオン/オフにできます。例としてlog4jを参照してください。