MyStringBuffer類は以下のメンバー方法を宣言して、1文字ずつ所定の位置に移動することを要求しています.(データ構造-Java版-葉核亜-74ページ-思考問題3-3)


タイトル:
MyStringBuffer類は、次のようなメンバー方法を示しており、1文字あたりの移動が必要です.
MyStringBuffer replace(int begin,int end,String s)
コード:
//   insert()  ,         ,                

public synchronized MyStringBuffer replace(int begin, int end, String s)
{
    int i = begin;
    if (begin>=0 && begin<this.n && end>=0 && begin<=end)
    {
        if (end>this.n)
            end=this.n;
        if (s==null)
            s = "null";
        char[] temp=this.value;
        if (this.value.length < this.n+s.length()-(end-begin))
        {   this.value = new char[(this.value.length+s.length()-(end-begin))*2];
            for (int j=0; j<i; j++)
                this.value[j] = temp[j];
        }
        for (int j=this.n-1; j>=end; j--)
            this.value[j+s.length()-(end-begin)] = temp[j];
        for (int j=0; j<s.length(); j++)
            this.value[i+j] = s.charAt(j);
        this.n += s.length()-(end-begin);
        return this;
    }
    else throw new StringIndexOutOfBoundsException("i="+i);
}