StringBufferクラス

文字列を扱うクラスにStringクラスのほかにもうひとつあります。
StringBufferクラスです。

Stringクラスと大きな違いはStringクラスはいったん作成したオブジェクトの文字列を
変更することができなかったのに対しStringBufferクラスは文字列の追加・挿入など 直接変更できます。

StringBufferクラスにも以下のようなメソッドが用意されています。

StringBufferクラスの主なメソッド

メソッド名
説明
insert(int i String s) 0番目から数えてi番目の位置に文字列 s を挿入する。
append(String s) 文字列の末尾に文字列 s を追加する。
toString()

文字列を元に生成したStringオブジェクトを返す

reverse() 文字列の並びを反転する。
length() オブジェクトが管理する文字列の文字数を返す(余分なメモリ領域を除く)
capacity() 現在のオブジェクトが確保しているメモリの有効文字数を返す

サンプルプログラム(Sample74.java)

class Sample74{
    public static void main(String args[]){
   StringBuffer sb = new StringBuffer("Hello!");
   System.out.println("元々のオブジェクトが管理する文字列です。");
    System.out.println(sb);

   //文字列Hello!の後にJavaを追加

    sb.append("Java");
    System.out.println("----------------------");
    System.out.println("文字列が変更されました。");
    System.out.println(sb);
    }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行します

まず、このプログラムではStringクラスとStringBufferクラスの違いを明確にするために
簡単なサンプルを作成しました。

StringBufferクラスは文字列の変更ができることは最初に説明しました。

ここでは最初に参照変数sbのオブジェクトが管理している文字列はHello!です。
しかしその後でメソッドappend("Java");を使用しています。
そのメソッドは文字列の末尾に文字列を追加するメソッドでした。
したがって参照変数sbのオブジェクトの文字列がHello!Javaに書き換えられているのが
わかります。

では、続けてサンプルプログラムを見ていきましょう。

サンプルプログラム(Sample74_1.java)

class Sample74_1{
    public static void main(String args[]){
   
   StringBuffer sb = new StringBuffer("Hello!");
  System.out.println("元々の文字列");
  System.out.println(sb);
  System.out.println("文字列の長さは" + sb.length());

System.out.println("-----------------------"); sb.append("の世界"); System.out.println("文字列が変更されました"); System.out.println(sb); System.out.println("文字列の長さは" + sb.length());
System.out.println("------------------------"); sb.insert(6,"Java"); System.out.println("文字列が変更されました"); System.out.println(sb); System.out.println("文字列の長さは" + sb.length()); System.out.println("-------------------------"); sb.reverse(); System.out.println("文字列の並びを反転しました"); System.out.println(sb); } }

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行します

このような結果になりました。

ページのトップへ戻る