HOWTO · Java

Java で printf()メソッドを使用してブール値を出力する

この記事では、Java でブール値を出力するための printf()メソッドを紹介します。

このページの内容

Java の boolean は true または false のどちらかを保持します。フォーマットしたコンソール出力に値を含めるには、フォーマット文字列と boolean 値を指定して printf() を呼び出します。小文字で出力するには %b、大文字で出力するには %B を使います。フォーマットが不要なら、println() や print() のほうが簡単です。

Java で printf() を使って Boolean を出力する

System.out.printf() は、フォーマットしたテキストをコンソールに出力します。書式化したい値ごとに変換指定子を含めます。渡した引数すべてに指定子が必要なわけではなく、余分な引数は使われないまま残ることがあります。この自己完結した例では、説明用のラベルとともに両方の boolean 値を出力します。コード内のラベルと出力文字列は英語のままです。

次の例を実行してください。

public class Main {
    public static void main(String[] args) {
        boolean ready = true;
        boolean complete = false;

        System.out.printf("Ready: %b%n", ready);
        System.out.printf("Complete: %b%n", complete);
    }
}

%n はプラットフォームに適した行区切りを追加するため、それぞれの結果が別の行に表示されます。次のセクションでは、表示される値の大文字・小文字を切り替える方法を説明します。

Boolean の出力に %b と %B を使う

%b を使うと、boolean は小文字の true または false にフォーマットされます。%B を使うと、大文字の TRUE または FALSE になります。指定子は、引数の中で同じ位置にある値に対応させます。次の例では、2つの形式を並べて示します。

このセクションのコードと表示されるラベルや出力は英語のままです。

public class Main {
    public static void main(String[] args) {
        boolean enabled = true;
        boolean archived = false;

        System.out.printf("%b %B%n", enabled, archived);
    }
}

最初の変換指定子は最初に渡した値に対応し、2つ目は次の値に対応します。値を変更したり追加したりするときは、フォーマット文字列と引数の並びを対応させてください。大文字・小文字を制御したり、ほかのテキストと組み合わせたりする必要がなく、boolean を表示するだけなら、直接出力するメソッドを使います。

println() または print() で Boolean を出力する

System.out.println(value) は値を出力したあとに行区切りを追加します。boolean をそのまま渡せるため、変換指定子や文字列連結は必要ありません。System.out.print(value) は行を終えずに値を出力します。後続の出力を新しい行から始めたい場合は、その後に println() または %n を追加します。コード内のラベルと出力文字列は英語のままです。

public class Main {
    public static void main(String[] args) {
        boolean connected = true;
        System.out.println("Connected: " + connected);

        boolean saved = false;
        System.out.print("Saved: ");
        System.out.println(saved);
    }
}

値ごとに行を終えたい場合は println() を使います。複数の要素からプロンプトを組み立てるときのように、同じ行への出力を続けたい場合は print() を使います。

よくあるフォーマットと出力の注意点

フォーマット指定子は、対応する引数を1つ使います。呼び出し時に指定する変換の数と順序を値に合わせてください。そうしないと、意図した値がテキストに反映されないことがあります。たとえば、%b の後に boolean 引数を2つ渡しても、フォーマットされるのは最初の引数だけです。もう一方も表示するには、変換指定子をもう1つ追加します。

printf() は行を自動的に終えません。出力の末尾を改行にするには、フォーマット文字列に %n を追加します。フォーマット文字列にプラットフォーム固有の改行文字を埋め込むより、この方法が適しています。一方、println() は出力の末尾に行区切りを追加しますが、print() は追加しません。

%b と %B は、小文字または大文字で表示したい場合に使います。通常の boolean 表示なら、println() のほうが簡潔で、行の扱いも明確です。プログラム内では値を boolean のまま保持してください。フォーマット指定子を使うと、フォーマット出力時にその値がテキストとして表現されます。