Javaのconcatメソッドを使って文字列を連結する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaのconcatメソッドを使って文字列を連結する方法について解説しています。Stringクラスのconcatメソッドを使用することで、文字列同士を繋げることができます。concatメソッドの書き方、appendメソッドとの違いについて学びましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Javaのconcatメソッドを使って文字列を連結する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Java講座の内容をもとに作成しています。

 

田島悠介

今回は、Javaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

concatメソッドを使って文字列を連結する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

concatメソッドとは

concatメソッドとは、Javaにおける文字列のための変数型であるString型で定義されたメソッドであり、文字列を結合したいときに使用します。

concatメソッドの他にも文字列を結合するメソッドがあるものの、インスタンスを新たに生成するのはconcatメソッドのみです。

 

concatメソッドの使い方

concatメソッドを使うには、元になる文字列を用意し、結合したい文字列を引数に渡して結合しましょう。

concatメソッドの記述の方法は、以下のような形となります。

元になる文字列.concat(結合したい文字列);

 

しかし、concatメソッドは元になる文字列自体を変更させるわけありません。

結合した文字列を変数として扱いたい場合には、下記のような形で使用する必要があります。

String 結合した文字列 = 元になる文字列.concat(結合したい文字列);

 

 

[PR] Javaで挫折しない学習方法を動画で公開中

文字列を連結する方法

文字列を連結させるconcatメソッドの他にも、Javaには文字列を結合させる方法がいくつかあります。

 

1つは、+演算子を使う方法です。

+演算子で文字列を結合させる場合は、下記のように感覚的に操作できる点がメリットです。

String 結合した文字列 =結合したい文字列① + 結合したい文字列②

しかし、この方法での文字列の結合とconcatメソッドを使って文字列を結合では、オブジェクトの生成を多く行なう必要があるため、膨大な数の文字列を結合させると非常に時間が掛かるというデメリットがあります。

そのため、プログラムを簡潔に表す場合、+演算子やconcatメソッドではなく、appendメソッドを使う癖をつけておくのがオススメです。

 

上記でも触れた文字列を結合させるもう1つの方法として、appendメソッドがあります。

appendメソッドでは、StringBuilderクラスを使う方法とStringBufferクラスを使う方法の2通りがあり、使い方はあまり変わりません。

StringBuilderクラスのコード例は以下のよう表します。

StringBuilder 変数名 = new StringBuilder(結合したい文字列①);

変数名.append(結合したい文字列②);

String 結合した文字列 = 変数名.toString()

 

StringBuferクラスを使用する場合もほとんど同じで、オブジェクトの生成の部分だけを変えるだけです。

StringBuffer 変数名 = new StringBuffer(結合したい文字列①);

変数名.append(結合したい文字列②);

String 結合した文字列 = 変数名.toString()

 

 

concatメソッドとappendメソッドの違い

Javaには4つほど文字列を結合する方法があります。

その中でも似たような使い方をするconcatメソッドとappendメソッドの違いとして、concatメソッドでは、メソッドの返り値がString型であるため、文字列の結合をすると新しいオブジェクトを生成されます。

対して、appendメソッドでは、「文字列バッファ」という変数をつかうのでオブジェクトを生成しないという点です。

一般的にオブジェクトの生成は時間がかかるのため、appendメソッドを使う方が処理にかかる時間が短いといえるでしょう。

 

実際に書いてみよう

concatメソッドとappendメソッドを使用したプログラムコードは下記のようになります。

class Sample{
        public static void main(String args[]){
               //Stringクラスのconcatメソッドを使う場合
               String str1 = "Hello";
               String str2 = str1.concat(" World!");
               System.out.println(str2);

               //StringBuilderクラスのappendメソッドを使う場合
               StringBuilder sb1 = new StringBuilder("Hello");
               sb.append(" World!!");
               String str3 = sb1.toString();
               System.out.println(str3);

               //StringBufferクラスのappendメソッドを使う場合
               StringBuffer sb2 = new StringBuffer("Hello");
               sb2.append(" World!!!");
               String str4 = sb2.toString();       
               System.out.println(str4);

         }
}

これを実行すると、

Hello World!
Hello World!!
Hello World!!!

と表示され、どの方法でも文字列の結合ができることが確認可能です。

 

以上、この記事では、Javaで文字列を結合するための方法について解説しました。

同じ結果となる場合でも違う方法で行えば、処理の速さが変わってくるといえるでしょう。

 

監修してくれたメンター

小倉翔悟 (おぐらしょうご)

AIプログラミングを使って開発を行う大学3年生。

プログラミング歴は約3年。

Pythonは割と好きな方。

JavaもAndroid開発で触れていたりする。

大学では物理学を勉強中。

好きな物理理論は一般相対性理論らしい。

意外と動物が好きだったり、、、。

 

大石ゆかり

Javaのconcatメソッドを使って文字列を連結する方法がよくわかったので良かったです!

田島悠介

ゆかりちゃん、今後も分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも最短4週間で、JavaやServletの技術を使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。

 

また、現役エンジニアから学べる無料体験も実施しているので、参加してみてください。