StringBuilder/StringBufferの代表的APIの使い方

reverse() 文字列の逆順変換

StringBuilder sb = new StringBuilder("abcdef");
sb.reverse();
System.out.println(sb);
実行結果:fedcba

append(各種オブジェクト) 文字列の追加

StringBuilder sb = new StringBuilder("abcdef");
sb.append("01");
System.out.println(sb);
実行結果:abcdef01

insert(int offset, 各種オブジェクト) 文字列の挿入
オフセット値は、対象文字列の最後のインデックス+1まで指定できる。
オフセット値が範囲外だとStringIndexOutOfBoundsExceptionが投げられる。

StringBuilder sb = new StringBuilder("abcdef");
sb.insert(2, "123");
System.out.println(sb);
実行結果:ab123cdef
※対象文字列終了インデックス+1を指定した場合
StringBuilder sb = new StringBuilder("abcdef");
sb.insert(6, "123");
System.out.println(sb);
実行結果:abcdef123
※オフセットに範囲外を指定した場合
StringBuilder sb = new StringBuilder("abcdef");
sb.insert(7, "123");
System.out.println(sb);
実行結果:Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 7

delete(int 開始インデックス, int 終了インデックス) 文字列の削除
注意点は終了インデックスは削除対象に含まれないこと。
終了インデックスは対象文字列長を超える値を指定しても問題ない。

StringBuilder sb = new StringBuilder("abcdef");
sb.delete(2, 4);
System.out.println(sb);
実行結果:abef
※終了インデックスに対象文字列長を超えた値を指定した場合
StringBuilder sb = new StringBuilder("abcdef");
sb.delete(2, 8);
System.out.println(sb);
実行結果:ab

replace(int 開始インデックス, int 終了インデックス, String 置換文字列) 文字列の置換
※deleteと同じく終了インデックスは置換対象に含まれない点に注意。
終了インデックスには対象文字列長を超えた値を指定可能

StringBuilder sb = new StringBuilder("abcdef");
sb.replace(2, 4, "1234");
System.out.println(sb);
実行結果:ab1234ef
※終了インデックスに対象文字列長を超えた値を指定した場合
StringBuilder sb = new StringBuilder("abcdef");
sb.replace(2, 9, "1234");
System.out.println(sb);
実行結果:ab1234

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です