StringBufferクラスで文字列を扱う

StringBufferクラスを使い文字列を扱うこともできる。変数の値の文字列を何度も変更する場合に有効だ。

Stringクラスは、値を変更する度に新たなメモリ領域を使用する。これに対し、StringBufferクラスは、元の値のメモリ領域を使用するので、メモリ領域を節約したいときに有効だ。ただし、実行速度は低下するかもしれない。

構文

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

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

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

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

宣言と同時に代入

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

サンプル

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 ){

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

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

  StringBuffer $str3 = new StringBuffer( "文字列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」である。