HOME > StringBuilderを使用した文字列操作

StringBuilderを使用した文字列操作

StringBuilderクラスを使うと、以下のような処理が簡単に行えます。

・文字列の結合
・文字列の挿入
・文字列の部分置換
・文字列の部分削除
・文字列の部分取り出し
・文字列の検索

サンプルソースコード

 StringBuilderによる文字列結合サンプル

public class StringBuilderSample {

    public static void main(String args[]) {

        //StringBuilderの生成とデータアペンド
        StringBuilder sb = new StringBuilder();
        sb.append("ABC");
        sb.append("DEF");

        //画面出力
        System.out.println(sb.toString());

    }

}

実行結果

 コマンドプロンプト

C:\>java StringBuilderSample
ABCDEF

※各メソッドのサンプルは、このページの一番下をご覧ください。

主要メソッド

【java.lang.StringBuilderクラスの主要メソッド】
戻値型 メソッド 説明
StringBuilderappend(String s)末尾にsを追加する
(※引数はintやcharなどもOKです。)
StringBuilderinsert(int x, String s)a番目にsを挿入する
(※引数はintやcharなどもOKです。)
StringBuilderreplace(int a, int b, String s)a番目〜b番目の文字をsに置き換える
voidsetCharAt(int a, char s)a番目の文字をsに置き換える
StringBuilderdelete(int a, int b)a番目〜b番目の文字を削除する
StringBuilderdeleteCharAt(int a)a番目の文字を削除する
charcharAt(int a)a番目の文字をchar型で取得する
intindexOf(String s)sが一番最初に出現するインデックス番号を返す
(存在しない場合は -1 が返る)
intindexOf(String s, int a)sがa番目以降で一番最初に出現するインデックス番号を返す
(存在しない場合は -1 が返る)
intlastIndexOf(String s)sが最後に出現するインデックス番号を返す
(存在しない場合は -1 が返る)
intlastIndexOf(String s, int a)sがa番目より手前で一番最初に出現するインデックス番号を返す
(存在しない場合は -1 が返る)
intlength()文字列の長さ(文字数)を返す
StringBuilderreverse()文字列の並びを逆にする
Stringsubstring(int a)a番目以降をString型で返す
Stringsubstring(int a, int b)a番目〜b番目をString型で返す
voidtoString()String型で返す

 StringBuilder主要メソッドサンプル

//元データ
StringBuilder sb1 = new StringBuilder("ABCDEFG");
StringBuilder sb2 = new StringBuilder("ABCDEABCDEABCDE");
StringBuilder sb3 = new StringBuilder("あいうえお");

※以下の結果は全てtoStringしたものです

//末尾に"***"を付加する
sb1.append("***");
→ "ABCDEFG***"

//インデックス番号1(2文字目)に"***"を挿入する
sb1.insert(1, "***");
→ "A***BCDEFG"

//インデックス番号2〜4(3〜4文字目)を"***"に置換する
sb1.replace(2, 4, "***");
→ "AB***EFG"

//インデックス番号3(4文字目)を'*'に置換する
sb1.setCharAt(3, '*');
→ "ABC*EFG"

//インデックス番号0〜2(1〜2文字目)を削除する
sb1.delete(0,2);
→ "CDEFG"

//インデックス番号3(4文字目)を削除する
sb1.deleteCharAt(3);
→ "ABCEFG"

//インデックス番号3(4文字目)を取得する
sb1.charAt(3)
→ 'D'

//"CD"が一番最初に出現するインデックス番号を取得する
sb2.indexOf("CD")
→ 2
sb2.indexOf("HOGE")
→ -1 (見つからないので-1)

//インデックス番号5(6文字目)以降で
 "CD"が最初に出現するインデックス番号を取得する
sb2.indexOf("CD", 5)
→ 7

//"CD"が一番最後に出現するインデックス番号を取得する
sb2.lastIndexOf("CD")
→ 12

//インデックス番号10(11文字目)以前で
 "CD"が最後に出現するインデックス番号を取得する
sb2.lastIndexOf("CD", 10)
→ 7

//文字数を取得する
sb1.length();
→ 7
sb3.length();
→ 5

//文字列の並びを反転させる
sb1.reverse();
→ "GFEDCBA"

//インデックス番号3(4文字目)以降の文字列を取得する
sb1.substring(3)
→ "DEFG"

//インデックス番号0〜3(1〜3文字目)の文字列を取得する
sb1.substring(0, 3);
→ "ABC"

//StringBuilderをString型で取得する
sb1.toString();
→ "ABCDEFG"

文字列カテゴリ