-1

from, to私の文字列の中に別の文字列に置き換えたい部分がありますreplace_string。私のコードは動作するはずですが、返された部分文字列のような別の部分がある場合はどうなりますか?

var from=10, to=17;
//...

str = str.replace(str.substring(from, to), replace_string);

例えば:

from=4,to=6
str = "abceabxy"
replace_string = "zz"

str は「abcezzxy」である必要があります

4

2 に答える 2

1

文字列は不変です。これは、最初にインスタンス化された後は変更されないことを意味します。文字列を操作するすべてのメソッドは、実際には文字列の新しいインスタンスを返します。したがって、次のように結果を変数に代入する必要があります。

str = str.replace(str.substring(from, to), replace_string);

更新:ただし、最初にこれを行うより効率的な方法は次のとおりです。また、エラーが発生しにくくなります。

str = str.substring(0, from) + replace_string + str.substring(to);

このフィドルを参照してください: http://jsfiddle.net/cFtKL/

両方のコマンドをループで 100,000 回実行します。前者は約 75 ミリ秒かかり、後者は 20 ミリ秒かかります。

于 2013-09-14T15:00:10.960 に答える