【Java】printfメソッドの使い方:基本的な書式について

【Java】printfメソッドの使い方:基本的な書式についてプログラミングの知識
プログラミングの知識

この記事では、空白や桁数を揃えたりするのに便利なprintfメソッドについて、使い方と基本的な書式についてまとめます。

また、printメソッドとの使い分け方についても紹介します。

スポンサーリンク

printfメソッドとは

Javaにおいて文字列を表示するには、print(println)メソッドが基本的に使われていますが、他にもprintfメソッドというものがあります。

printfメソッドを使うことで、空白を揃えたり、小数点以下をどこまで表示するか指定することができたりするため、表示の自由度が高いという特徴があります。

printfメソッドは以下のように記述します。

//printfメソッドの書式
System.out.printf("%?", 変数)

よく使われるprintメソッドとは書き方が違うので注意しましょう。

printメソッドとの違い

printメソッドと書き方の比較をしてみます。

1が代入されたint型の変数iを使って、「りんごは1個あります」と出力させます。

int i = 1;
// printf文
System.out.printf("みかんは%d個あります%n", i);
// print文
System.out.println("みかんは" + i + "個あります");
// どちらも「りんごは1個あります」と出力される

このようにそれぞれのメソッドの書き方には違いがあります。

よく使うprintfの書式

以下によく使う書式とサンプルコードを示します。

書式説明
%n改行する
%d10進数で出力する
%"整数"d整数桁分準備して右詰め
%f小数を出力する
%."整数"f小数点以下の表示を整数桁にする
%c文字を出力する
%s文字列を出力する
printfの主な書式

サンプルコードと出力結果

サンプルコードを以下に示します。

package bg;

public class PrintfTest {

    public static void main(String[] args) {

        // 整数を出力する %4dを使えば4文字文右詰めして出力される
        System.out.printf("1:%d%n", 100);
        System.out.printf("2:%4d%n", 100);

        // 小数を出力する %.1fとすれば小数点一桁まで出力される
        System.out.printf("3:%f%n", 3.33);
        System.out.printf("4:%.1f%n", 3.33);

        // 文字を出力する %2cとすれば2文字文右詰めして出力される
        System.out.printf("5:%c%n", 'a');
        System.out.printf("6:%2c%n", 'a');

        // 文字列を出力する
        System.out.printf("7:%s%n", "java");

        System.out.printf("8:%03d", 1);
    }
}

サンプルコードの出力結果は下の様になります。

1:100
2: 100
3:3.330000
4:3.3
5:a
6: a
7:java
8:001

書式を変えることで、出力結果の空白がずれていることが分かると思います。

このようにprintfメソッドを使うことでより自由な出力を行うことが出来ます。

printfとprintメソッドの使い分けについて

基本的には文章の出力にはprintメソッドが使われます。printfメソッドを使った方が良い場面は

  • 出力時の空白を揃えたい時
  • 1,000のように値を区切りたい時
  • 001のように0詰めを行いたい時

などがあります。

数字をカンマで区切る方法

値段表示のように数字をカンマで区切る方法を示します。

System.out.printf("%,d%n",100); //「100」が出力される
System.out.printf("%,d%n", 1000); //「1,000」が出力される
System.out.printf("%,d%n",10000); //「10,000」が出力される

数字を0詰めする方法

次に数字を0詰めする方法を示します。

System.out.printf("%03d", 0); //「000」が出力される
System.out.printf("%03d", 1); //「001」が出力される
System.out.printf("%03d", 2); //「002」が出力される

まとめ

以上がprintfメソッド使い方になります。

ポイント
  • printfメソッドを使うことで桁数や空白数を指定することができる
  • printfメソッドprintメソッドと書き方が違うので注意

上で紹介した書式は、printfメソッドの基本的なものです。printfメソッドを使いこなすことで、より自由に出力を記述できます。

スポンサーリンク
Dim雑記
タイトルとURLをコピーしました