文字列を挿入する(insert)

広告

指定した位置に文字列を挿入するメソッドを確認します。

文字列をこの文字シーケンスに挿入します。

String 引数の文字が、このシーケンスの指定されたオフセット位置に順番に挿入されます。その位
置にあった文字は移動され、引数の長さの分だけこのシーケンスの長さが増加します。str が null
の場合は、"null" の 4 文字がこのシーケンスに挿入されます。 

offset 引数は 0 以上で、このシーケンスの長さに等しいかこれより小さくなければなりません。

パラメータ:
  offset - オフセット
  str - 文字列 
戻り値:
  このオブジェクトへの参照 
例外: 
  StringIndexOutOfBoundsException - オフセットが無効な場合

appendメソッドは最後に文字列を追加しましたが、insertメソッドは指定した位置に文字列を挿入します。挿入する位置を表すオフセットは先頭が0となります。またバイト数ではなく文字数での位置となりますので半角文字も全角文字も同じ扱いとなります。

上記のinsertメソッドの引数はString型となっていますが、同じメソッドで引数の型が違うメソッドが用意されています。

StringBuilder insert(int offset, boolean b)
StringBuilder insert(int offset, char c)
StringBuilder insert(int offset, char[] str)
StringBuilder insert(int index, char[] str, int offset, int len)
StringBuilder insert(int dstOffset, CharSequence s)
StringBuilder insert(int dstOffset, CharSequence s, int start, int end)
StringBuilder insert(int offset, double d)
StringBuilder insert(int offset, float f)
StringBuilder insert(int offset, int i)
StringBuilder insert(int offset, long l)
StringBuilder insert(int offset, Object obj)

appendメソッドと同じくString型以外の値の場合は、いったん文字列表現の形に変更されてから挿入されて行きます。

サンプルプログラム

では実際に試してみましょう。

testStringBuilder2.java

class testStringBuilder2{
  public static void main(String args[]){
    StringBuilder sb = new StringBuilder();
    sb.append("こんにちは。元気です。");
    sb.insert(5, "鈴木さん");

    System.out.println(new String(sb));
  }
}

上記を実際にコンパイルして実行してみると下記のようになります。

p2

( Written by Tatsuo Ikura )