Java 文字列を連結するサンプル(StringBuilderとStringBuffer)

Javaの文字列を連結するサンプルです。

目次

StringBuilderクラス - appendメソッド

public  StringBuilder  append (String str)
  • 文字列を連結します。
  • 単一のスレッドで動作することを前提にしているため速いです。
  • 文字列の連結時に新たなインスタンスは生成されません。
  • 文字列がnullの場合、nullという文字が追加されます。
  • appendメソッドの引数にint型、long型等も可能です。文字列として連結します。
  • 以下はJava8 API仕様のStringBuilderクラスのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/lang/StringBuilder.html

コード

サンプルのコードです。
11,12行目のappendメソッドで文字列を連結しています。

package test1;
 
public class Test1 {
	public static void main(String[] args) {
		
		String s1 = "あいう";
		String s2 = "えお";
		
		//StringBuilderクラスのappendメソッドで連結
		StringBuilder sb = new StringBuilder();
		sb.append(s1); 
		sb.append(s2);
		
		//toStringメソッドは文字列を返す
		System.out.println(sb.toString());
		// あいうえお
 	}
}

StringBufferクラス - appendメソッド

public StringBuffer append (String str)
  • 文字列を連結します。
  • 複数のスレッドで動作することを前提にしていて排他制御がある分遅いです。
  • 文字列の連結時に新たなインスタンスは生成されません。
  • 文字列がnullの場合、nullという文字が追加されます。
  • appendメソッドの引数にint型、long型等も可能です。文字列として連結します。
  • 以下はJava8 API仕様のStringBufferクラスのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/lang/StringBuffer.html

コード

サンプルのコードです。
11,12行目のappendメソッドで文字列を連結しています。

package test1;
 
public class Test1 {
	public static void main(String[] args) {

		String s1 = "あいう";
		String s2 = "えお";
		
		//StringBufferクラスのappendメソッドで連結
		StringBuffer sb = new StringBuffer();
		sb.append(s1); 
		sb.append(s2);
		
		//toStringメソッドは文字列を返す
		System.out.println(sb.toString());
		// あいうえお
 	}
}

+演算子による文字列の連結

  • +演算子で連結するたびに新たなインスタンスが生成されてしまいます。
  • 不要なインスタンスの生成はパフォーマンスの問題を引き起こすので注意が必要です。
  • ただし文字列リテラル同士の+演算子の連結はコンパイル時に行われるため速度は速いです。

コード

+演算子のサンプルです。

package test1;
 
public class Test1 {
	public static void main(String[] args) {
		
		//+演算子での文字列の連結
		System.out.println("ab" + "c");// abc
 	}
}



△上に戻る