1

文字列から部分文字列をすべて削除する必要があります。Remove()またはを使用できますがReplace()、どちらが優れていますか?

4

4 に答える 4

7

文字列から部分文字列をすべて削除する必要があります。

すべてのオカレンスを削除する必要があることを考えると、Replace間違いなくより良い選択になります。 Remove(削除する適切なインデックスと長さを渡すために) 毎回場所を見つけるために、複数の呼び出しが必要になります。つまり、多くの一時的な文字列を作成することになります。これには、より多くの作業が必要であり、生成する一時的な文字列をクリーンアップするためにガベージ コレクターに余分な作業が必要になります。

于 2013-09-16T20:33:24.120 に答える
2

Remove特定の部分文字列のすべてのインスタンスを削除するわけではありません (もちろん、最初にすべてのインデックスを見つける作業を行わない限り)。そうするだけReplaceです。

于 2013-09-16T20:32:23.663 に答える
0

Remove は、削除する文字列のインデックスを取得する必要があり、毎回 1 つのオカレンスのみを削除しますが、replace は置換する文字列だけを知る必要があるため、それを記述する方法では、Replace の方が簡単です。

string foo = "bar";
string result;
result = foo.Remove(foo.IndexOf("a"));//you will have to repeat that for each instance

また

string foo = "bar";
string result;
result = foo.Replace("a","");
于 2013-09-16T20:34:11.953 に答える
0

Replace() は、出現するすべての文字列を置換するために使用されます。Remove() は、渡された文字列を破棄して残りを保持する逆方向の Substring() と考えることができます。

于 2013-09-16T20:34:22.180 に答える