StringBuffer クラス

Revised: Jan./3rd/2002: Since: Jan./1st/2002

文字列は String クラスのオブジェクトとして保持しますが、可変の場合は StringBuffer を用います。

クラス階層

java.lang.Object
  |
  +--java.lang.StringBuffer

概要

API 仕様では次のように説明されています:

文字列バッファは可変の文字列を実装します。文字列バッファは String と似ていますが、変更できる点が異なります。文字列バッファには常に文字列が格納されていますが、文字列の長さと内容は特定のメソッドの呼び出しにより変更できます。

コンストラクタ

StringBuffer() 文字を持たず、初期容量が 16 文字である文字列バッファを構築します。
StringBuffer(int length) 文字を持たず、引数 length によって指定された初期容量である文字列バッファを構築します。
StringBuffer(String str) 文字列バッファを構築し、文字列引数に等しい文字列を表すようにします。

文字列バッファには格納可能文字数の容量がありますが、文字列操作によって文字が溢れる場合は、自動的に容量が増加します。

メソッド

メソッドが多いので、代表的なメソッドの名前だけ紹介しておきます。全てのメソッドの詳細な定義は API 仕様を直接ご確認ください。

append()
引数のデータやオブジェクトを当該文字列バッファの末尾に追加。オーバーロードされており、基本データ型は全てサポートされている。
charAt()
引数で指定されたインデックスの文字を char 型で返す。
delete(), deleteCharAt()
指定した範囲の部分文字列を削除。
insert()
引数のデータやオブジェクトを当該文字列バッファの、引数で指定した位置に挿入。オーバーロードされており、基本データ型は全てサポートされている。
length()
当該文字列バッファの文字数を int 型で返す。
replace()
指定した範囲の部分文字列を、引数の文字列に置換。
reverse()
逆並びの文字列に置換。
substring()
指定した範囲の部分文字列を String 型で返す。
toString()
当該文字列バッファを String 型で返す。

サンプル

append()insert() の例を挙げます。

class TestAppIns{
	public static void main(String args[]){
		//インスタンス化
		StringBuffer sb1=new StringBuffer("StringBuffer");
		StringBuffer sb2=new StringBuffer("Object");
		System.out.println("obj1: "+sb1);
		System.out.println("obj2: "+sb2);

		//append()
		System.out.println("--------append()--------");
		System.out.println("  char: "+sb1.append('-'));
		System.out.println("String: "+sb1.append("文字列"));
		System.out.println("Object: "+sb1.append(sb2));

		System.out.println("obj1: "+sb1);

		//insert()
		System.out.println("--------insert()--------");
		int i=sb1.length();
		System.out.println("0, int: "+sb1.insert(0, i));
		System.out.println("2, char: "+sb1.insert(2, '-'));

		System.out.println("obj1: "+sb1);
	}
}

append() では、 char 型、 String 型、 オブジェクトを追加しています。続いて、 length() メソッドで文字列バッファの文字数を int 型で取得しています。 insert() では、 int 型、 char 型を挿入しています。挿入位置を示すオフセット値は、一文字目が0で、指示した位置の直前に挿入されます。つまり、0を指示すると先頭に挿入されます。

C:\Java>javac TestAppIns.java

C:\Java>java TestAppIns
obj1: StringBuffer
obj2: Object
--------append()--------
  char: StringBuffer-
String: StringBuffer-文字列
Object: StringBuffer-文字列Object
obj1: StringBuffer-文字列Object
--------insert()--------
0, int: 24StringBuffer-文字列Object
2, char: 24-StringBuffer-文字列Object
obj1: 24-StringBuffer-文字列Object


Copyright © 2001 SUGAI, Manabu. All Rights Reserved.
SEO [PR] !uO z[y[WJ Cu