2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Java】concat / append (文字列を連結するメソッド)

Last updated at Posted at 2020-12-12

Javaの文字列を連結させるメソッド

についてまとめました。

【要約】

concatもappendも両方文字列を連結するメソッドです。

抑えるべきポイントは以下です

  • concatは新しくオブジェクトを生成する
  • appendはオブジェクトを生成しない

concatメソッドとは

要約すると「文字列を結合しオブジェクトを新たに生成する」メソッドです。

他にも文字列結合のメソッドはありますが、オブジェクトを新たに生成するのはconcatメソッドのみ。

【説明】

concatメソッドは元になる文字列自体を変更させるものではなく、「結合した新しいインスタンスを生む」という点がポイント。

concatメソッドを使うには、元になる文字列を用意し、結合したい文字列を引数に渡して結合します。書き方は以下です。

//concatの記述方法
元になる文字列.concat(結合したい文字列);

// 結合した文字列を変数として扱う
String 結合した文字列 = 元になる文字列.concat(結合したい文字列);

appendメソッドとは

要約すると「文字列を結合する」メソッドです。

上記のconcatとのおおまかな違いは、オブジェクトを生成するか否かです。

【説明】

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

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

文字を連結する際に「新しくオブジェクトを作る必要があるか」を問いてなるべくappendを採用できるようにするのがいいかも知れない。

appendメソッド種類

appendメソッドには以下のクラスを使う二通りのやり方があります。

  • StringBuilderクラス
  • StringBufferクラス

書き方は以下です。

StringBuilderクラス

書き方1

StringBuilder 変数名 = new StringBuilder(結合したい文字列);
変数名.append(結合したい文字列);
String 結合した文字列 = 変数名.toString()

サンプルコード1

public class Main {
    public static void main(String[] args) {
        // StringBuilderクラスのappendメソッドを使う場合
        StringBuilder sb = new StringBuilder("Hello");
        sb.append(" StringBuilder");
        String str = sb.toString();
        System.out.println(str);
    }
}
Hello StringBuilder

StringBufferクラス

書き方1

StringBuffer 変数名 = new StringBuilder(結合したい文字列);
変数名.append(結合したい文字列);
String 結合した文字列 = 変数名.toString()

サンプルコード1

public class Main {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("Hello");
        sb.append(" StringBuffer");
        String str = sb.toString();
        System.out.println(str);
    }
}
Hello StringBuffer

【まとめ】

JavaSilverの試験での範囲内ですので、以下の点は抑えておく。

  • concatはインスタンスを生成するメソッド
  • appendはインスタンスを生成しないメソッド

言い方を変えればappendは「もともとインスタンスが用意されている状態で使うメソッド」とも言えるかも知れません。

参考文献・記事

2
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?