Java で文字列補間を行う

Mohammad Irfan 2023年10月12日
  1. Java の + 演算子を用いた文字列補間
  2. format() メソッドを使用する Java の文字列補間
  3. Java の MessageFormat クラスを使用する Java の文字列補間
  4. Java の StringBuilder クラスを使用する Java 文字列補間
  5. Java 15 で formatted() メソッドを用いた Java 文字列補間
Java で文字列補間を行う

このチュートリアルでは、Java で文字列補間を行う方法を紹介し、トピックを理解するためにいくつかのコード例をリストアップします。

文字列補間は、プレースホルダを文字列リテラル内の値に置き換えるプロセスです。Java で文字列補間を行うには、String クラスの format() メソッド、MessageFormat クラスの format() メソッド、StringBuilder クラス、String クラスの formatted() メソッドなどを利用することができます。

Java の + 演算子を用いた文字列補間

これは最も単純なアプローチです。文字列の補間を行うには + を使用することができます。Java は + 演算子を使って変数と文字列を連結します。ですから、文字列補間にも使えます。以下では、2つの変数を文字列の中に入れて、結果として文字列を取得しています。

public class SimpleTesting {
  public static void main(String[] args) {
    String site_name = "DelfStack";
    String type = "'How to Guide'";
    String message = site_name + " is a " + type + " Portal";
    System.out.println(message);
  }
}

出力:

DelfStack is a 'How to Guide' Portal

format() メソッドを使用する Java の文字列補間

変数を補間して文字列を整形するには、String クラスの format() メソッドを用いることができます。format() メソッドは 2つの引数を取り、1つ目は文字列の書式で、2つ目は引数のリストです。

public class SimpleTesting {
  public static void main(String[] args) {
    String site_name = "DelfStack";
    String type = "'How to Guide'";
    String message = String.format("%s is a %s portal", site_name, type);
    System.out.println(message);
  }
}

出力:

DelfStack is a 'How to Guide' portal

Java の MessageFormat クラスを使用する Java の文字列補間

クラス MessageFormat は文字列補間を行うためのメソッド format() を提供します。ここでは、変数をプレースホルダ ({0}, {1}, etc) で文字列に置き換えます。以下の例を参照してください。

import java.text.MessageFormat;

public class SimpleTesting {
  public static void main(String[] args) {
    String site_name = "DelfStack";
    String type = "'How to Guide'";
    String message = MessageFormat.format("{0} is a {1} Portal", site_name, type);
    System.out.println(message);
  }
}

出力:

DelfStack is a 'How to Guide' Portal

Java の StringBuilder クラスを使用する Java 文字列補間

文字列に変数を追加するには、StringBuilder クラスの append() メソッドを使用します。StringBuilder は、String のミューティアブル版であり、変数を使って変更することができます。ここでは、変数を補間して文字列を作成しています。

public class SimpleTesting {
  public static void main(String[] args) {
    String site_name = "DelfStack";
    String type = "'How to Guide'";
    StringBuilder message = new StringBuilder(site_name)
                                .append(" is a ")
                                .append(String.valueOf(type))
                                .append(" Portal");
    System.out.println(message);
  }
}

出力:

DelfStack is a 'How to Guide' Portal

Java 15 で formatted() メソッドを用いた Java 文字列補間

Java 15 以上のバージョンで作業している場合は、formatted() メソッドを使用することができます。Java はこのメソッドを Java 15 に追加し、文字列の書式設定を可能にした。このメソッドは Object[] 型の単一の引数を取ります。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    String site_name[] = {"DelfStack", "How to Guide"};
    String message = "%s is a '%s' Portal".formatted(site_name);
    System.out.println(message);
  }
}

出力:

DelfStack is a 'How to Guide' Portal

関連記事 - Java String