printf を使った書式設定

JavaBeginner
オンラインで実践に進む

はじめに

この実験では、Java の printf() メソッドを使用します。printf() メソッドは、文字列をフォーマットしてコンソールに出力するために使用されます。このメソッドの一般的な構文は次のとおりです。

プロジェクトディレクトリの設定

ターミナルを開き、次のコマンドを使用してプロジェクトディレクトリを作成します。

mkdir project

次のコマンドを使用して、プロジェクトディレクトリ内に新しいファイルを作成します。

touch project_formatting_printf.java

整数の書式設定

printf() を使用して整数をフォーマットするには、%d という書式指定子を使用します。以下に例を示します。

public static void main(String[] args) {
  int num = 10;
  System.out.printf("The number is: %d%n", num);
}

上記のコードでは、%d は整数の書式指定子で、%n は改行文字です。

次のコマンドを使用してコードをコンパイルし、実行します。

javac project_formatting_printf.java
java project_formatting_printf

次のような出力が表示されます。

The number is: 10

小数の書式設定

小数をフォーマットするには、%f という書式指定子を使用します。例えば:

public static void main(String[] args) {
  double num = 3.14159265359;
  System.out.printf("The number is: %.2f%n", num);
}

上記のコードでは、%.2f は小数点以下 2 桁の小数の書式指定子です。

次のコマンドを使用してコードをコンパイルし、実行します。

javac project_formatting_printf.java
java project_formatting_printf

次のような出力が表示されます。

The number is: 3.14

日付の書式設定

日付をフォーマットするには、変換文字として t を使用し、書式指定子を指定します。例えば:

public static void main(String[] args) {
  Date date = new Date();
  System.out.printf("Today is %tA, %<tB %<te, %<tY.%n", date);
}

上記のコードでは、%tA は曜日の完全な名前の書式指定子で、%<tB %<te, %<tY は月、日、年の書式指定子です。%n は改行文字です。

次のコマンドを使用してコードをコンパイルし、実行します。

javac project_formatting_printf.java
java project_formatting_printf

次のような出力が表示されます。

Today is Friday, October 15, 2021.

フラグの使用

フラグは、出力に特殊な機能を追加するために使用されます。例えば:

public static void main(String[] args) {
  double num = 12345.6789;
  System.out.printf("The number is: %,.2f%n", num);
}

上記のコードでは、, は千の位区切り記号で、%.2f は小数点以下 2 桁の小数の書式指定子です。

次のコマンドを使用してコードをコンパイルし、実行します。

javac project_formatting_printf.java
java project_formatting_printf

次のような出力が表示されます。

The number is: 12,345.68

精度の使用

精度は、小数点以下の桁数を制限するために使用されます。例えば:

public static void main(String[] args) {
  double num = 1234.56789;
  System.out.printf("The number is: %.2f%n", num);
}

上記のコードでは、%.2f は小数点以下 2 桁の小数の書式指定子です。

次のコマンドを使用してコードをコンパイルし、実行します。

javac project_formatting_printf.java
java project_formatting_printf

次のような出力が表示されます。

The number is: 1234.57

大文字の使用

出力を大文字で表示するには、変換文字の大文字を使用します。例えば:

public static void main(String[] args) {
  String name = "John Doe";
  System.out.printf("Name: %S%n", name);
}

上記のコードでは、%S は大文字の文字列の書式指定子です。

次のコマンドを使用してコードをコンパイルし、実行します。

javac project_formatting_printf.java
java project_formatting_printf

次のような出力が表示されます。

Name: JOHN DOE

パディングの使用

パディングを使用すると、出力にスペースやゼロを追加できます。例えば:

public static void main(String[] args) {
  int num = 123;
  System.out.printf("The number is: %010d%n", num);
}

上記のコードでは、%010d は 10 桁の整数の書式指定子で、パディング文字は 0 です。

次のコマンドを使用してコードをコンパイルし、実行します。

javac project_formatting_printf.java
java project_formatting_printf

次のような出力が表示されます。

The number is: 0000000123

書式指定子の組み合わせ

複数の書式指定子を組み合わせることで、出力を任意の形式に整形することができます。例えば:

public static void main(String[] args) {
  double num = 1234.56789;
  System.out.printf("The number is: %,010.2f%n", num);
}

上記のコードでは、%010.2f は小数点以下 2 桁、全体で 10 桁の小数の書式指定子で、パディング文字は 0 です。, は千の位区切り記号です。

次のコマンドを使用してコードをコンパイルし、実行します。

javac project_formatting_printf.java
java project_formatting_printf

次のような出力が表示されます。

The number is: 01,234.57

まとめ

おめでとうございます!「Formatting With Printf」の実験を完了しました。LabEx でさらに多くの実験を行い、スキルを向上させることができます。