catch-img

Javaでの文字列結合のパターンを解説。性能良く速度が早いのは

Javaで文字列を結合する方法について、よく使われるプラス演算子を使う方法から、その他にもよく使われるオーソドックスなパターンを解説します。nullやカンマの対処法についても併せて紹介します。これを機に文字列結合をマスターしましょう。

目次[非表示]

  1. 1.Javaで文字列結合をするときの基本パターン
    1. 1.1.プラス演算子を使う
    2. 1.2.StringBuilderクラスを使う
    3. 1.3.StringBuilderのappendを使って文字列結合する
    4. 1.4.concatメソッドを使う
    5. 1.5.Javaの文字列結合にはjoinも使える
  2. 2.Javaの文字列結合でnullやカンマの対処方法
    1. 2.1.文字列がnullの場合の対処方法
    2. 2.2.カンマ区切りで処理する方法
  3. 3.Javaの文字列結合の基本をマスターしよう

Javaで文字列結合をするときの基本パターン

文字列結合とは、文字列の後ろに別の文字列を結合し、一つの文字列とする処理のことです。プログラムでは、結果やコメントメッセージをアウトプットする際によく使われます。

Javaの文字列結合について、よく使われるパターンを紹介しますので覚えておきましょう。

プラス演算子を使う

もっともよく使われる、シンプルな方法です。次の例を参考に見ていきましょう。

System.out.println(200 + 9);

この場合、コンソールでは「209」という数字が表示されます。これは、文字列ではなく数字として扱われているためです。文字列として扱うには、数字を「"」(ダブルクオーテーション)で囲む必要があります。

System.out.println("200" +"9");

この結果は「2009」と表示されます。「200」と「9」を、それぞれ文字として扱っているためです。

StringBuilderクラスを使う

Stringクラスは文字列を扱うクラスのことで、Javaを使う上では触れる機会は多くあります。Stringクラスは、一度作成した文字列に後から文字を追加することができません。この問題を解決できるのが「StringBuilder」というクラスです。

public class Main {
  public static void main(String[ ] args) {
    StringBuilder val = new StringBuilder();
    for(int count = 0; count < 10; count++) {
      String number = Integer.toString(count);
      val.append("今は" + number + "番目です。" );
    }
    System.out.println(new String(val));
  }
}

このサンプルを実行すると「今は0番目です。今は1番目です。今は2番目です。今は3番目です。今は4番目です。今は5番目です。今は6番目です。今は7番目です。今は8番目です。今は9番目です。」という結果が得られます。このように、for文と組み合わせて文字列を結合させることもできます。

StringBuilderのappendを使って文字列結合する

appendメソッドとは、文字を連結する際に使用するメソッドです。StringBuilderクラスのappendメソッドは、以下のように使います。

対象文字列.append(追加文字列)

対象文字列の後ろに、追加文字列が連結されます。具体的には、以下のように記述します。実行すると「こんにちは。良い天気ですね」となります。

public class Main {
  public static void main( String args[] ) {
    StringBuilder sb = new StringBuilder();
    sb.append( "こんにちは。" );
    sb.append( "良い天気ですね" );
    System.out.print( sb.toString() );
  }
}

concatメソッドを使う

concatメソッドは、引数で指定した文字列を、結合対象とする文字列の末尾に結合するためのメソッドになります。

public class Main {
  public static void main( String args[] ) {
    StringBuilder sb = new StringBuilder();
    String str1 = "りんご";
    String str2 = "みかん";
    String concat1 = str1.concat(str2);
    System.out.println(concat1);
  }
}

記述はとてもシンプルです。str1のオブジェクトに対してconcatメソッドを使用して、str2の文字列を末尾に指定しています。

Javaの文字列結合にはjoinも使える

joinはJava8から新しく追加された機能です。StringJoinerクラスのメソッドとして使います。

public class Main {
  public static void main(String[] args) {
    //joinを使用する
    String str = String.join("と", "レッド", "イエロー", "ブルー");
    System.out.println(str);
  }
}

記述はこのようになります。第1引数に「と」の文字を指定することで、第2引数以降の文字列は「と」で区切られることになります。そのため、結果は以下のようになります。

レッドとイエローとブルー

joinメソッドはString型の配列でも使用することが可能です。

■関連記事

  Javaの正規表現の基本。利用方法や組み合わせ、文字列の検索 | Java・フロントエンド研修のジョブサポート たくさんの文字列の中から、電話番号や住所など、見付けたい文字を発見するために使われるのが正規表現です。Javaにおける正規表現の基本を押さえておきましょう。正規表現の利用方法や組み合わせについて詳しく解説します。 Java・フロントエンド研修のジョブサポート

Java短期講座(入門5日・基礎10日)ー株式会社ジョブサポート

Javaの文字列結合でnullやカンマの対処方法

nullやカンマを結合させたい場合、どのようにコードを記述すれば良いのかを解説します。

文字列がnullの場合の対処方法

結合する文字列がnullの場合、「java.lang.NullPointerException」の例外が返ってきてしまいます。上記に紹介したようなプラス演算子やstringクラスを使用する場合、nullを扱うことはできません。

例外を回避するためには、StringUtilsクラスのisEmptyメソッドを使用することになります。

プロエンジニア育成コース(JAVA1~3ヶ月)ー株式会社ジョブサポート

カンマ区切りで処理する方法

文字列を直接結合させるのではなく、カンマ区切りで結合したい場合もあるでしょう。

その場合の方法としては、上記に紹介したjoinメソッドを使う場合がまずは有効です。

public class Main {
  public static void main(String[] args){
    //joinを使用する
    String str = String.join(",", "レッド", "イエロー", "ブルー");
    System.out.println(str);
  }
}

このように、第1引数をカンマにすれば、カンマで区切られた結果が表示されるようになります。

別の方法として、拡張for文の中に配列の要素ごとにappendメソッドを使用し、カンマと文字列を交互に結合するという方法もありますが、joinメソッドを使った方がはるかに簡単です。

■関連記事

  Javaの引数について基本的な考え方。参照渡しの注意点も解説 | Java・フロントエンド研修のジョブサポート 引数はプログラムを組む上で重要な要素です。引数の理解を曖昧にしておくと、Javaを扱うのが難しくなります。ここでは、引数に対する基本的な考え方について解説します。引数の扱いや参照渡しについて、理解を深めましょう。 Java・フロントエンド研修のジョブサポート

オンライン・リモート講座(入門5日・基礎10日)ー株式会社ジョブサポート

Javaの文字列結合の基本をマスターしよう

Javaの文字列結合は、メッセージの出力やbotのメッセージ出力など、多くの場面で使われます。

プラス演算子を使うのがシンプルですが、文字が長くなりそうな場合、カンマを挟んで出力する場合などさまざまなケースに対応できるように、色々なやり方を覚えておきましょう。

ジョブサポートでは通年開講で貴社の希望開始日に合わせたJava、フロントエンド研修(通学、オンライン・リモート講座)の受け入れを行っており、助成金を活用すれば費用負担を軽減して研修受講ができるのでお気軽にお問い合わせ下さい。

下記フォームを入力して

資料(全12P)を見る

職場で使用されているアドレスをご記入下さい。

アップロードしています。少々お待ちください。