MyStringBuffer類は以下のメンバー方法を宣言して、1文字ずつ所定の位置に移動することを要求しています.(データ構造-Java版-葉核亜-74ページ-思考問題3-3)
8675 ワード
タイトル:
MyStringBuffer類は、次のようなメンバー方法を示しており、1文字あたりの移動が必要です.
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);
}