StringBuilderクラスで文字列を扱う

StringBuilderクラスを使い文字列を扱うこともできる。変数の値の文字列を何度も変更する場合に有効だ。実行速度も高速である場合が多い。

Stringクラスは、値を変更する度に新たなメモリ領域を使用する。これに対し、StringBuilderクラスは、元の値のメモリ領域を使用するので、メモリ領域を節約したいときに有効だ。さらに、実行速度もStringBufferクラスより高速な場合が多い。

構文

先に宣言した変数に代入1

StringBuilder 変数; // 宣言
変数 = new StringBuilder( "文字列" ); // 生成及び代入

先に宣言した変数に代入2

StringBuilder 変数; // 宣言
変数 = new StringBuilder(); // 生成
変数.append( "文字列" ); // 代入

宣言と同時に代入

StringBuilder 変数 = new StringBuilder( "文字列" );

サンプル

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package samplePackage;

public class SampleClass {

 public static void main( String[] args ){

  StringBuilder $str1;
  $str1 = new StringBuilder( "文字列1" );
  System.out.println( "$str1の値は、「" + $str1 + "」である。" );

  StringBuilder $str2;
  $str2 = new StringBuilder();
  $str2.append( "文字列2" );
  System.out.println( "$str2の値は、「" + $str2 + "」である。" );

  StringBuilder $str3 = new StringBuilder( "文字列3" );
  System.out.println( "$str3の値は、「" + $str3 + "」である。" );

  $str1.append( " 追加文字列A" );
  System.out.println( "$str1の値は、「" + $str1 + "」である。" );

  $str1.append( " 追加文字列B" );
  System.out.println( "$str1の値は、「" + $str1 + "」である。" );

 }

}

実行結果

$str1の値は、「文字列1」である。
$str2の値は、「文字列2」である。
$str3の値は、「文字列3」である。
$str1の値は、「文字列1 追加文字列A」である。
$str1の値は、「文字列1 追加文字列A 追加文字列B」である。