9

2つの文字列がある場合..言う

string1="Hello Dear c'Lint"

string2="親愛なる"

..最初に文字列を比較し、一致する部分文字列を削除したい..
上記の文字列ペアの結果は次のとおりです。

「こんにちはクリント」

(つまり、 "Hello""c'Lint"の間の 2 つのスペース)

簡単にするために、string2 は string1 のサブセットであると仮定します.. (つまり、string1 には string2 が含まれます)。

4

6 に答える 6

14

どうですか

string result = string1.Replace(string2,"");

編集:更新された質問が遅すぎるのを見ました:)
好奇心のために、Regex.Replaceを使用して最初の出現のみを置き換える代替ソリューション:

string s1 = "Hello dear Alice and dear Bob.";
string s2 = "dear";
bool first = true;
string s3 = Regex.Replace(s1, s2, (m) => {
    if (first) {
        first = false;
        return "";
    }
    return s2;
});
于 2009-12-10T09:05:29.013 に答える
10

これだけを行います:

string string1 = textBox1.Text;
string string2 = textBox2.Text;

string string1_part1=string1.Substring(0, string1.IndexOf(string2));
string string1_part2=string1.Substring(
    string1.IndexOf(string2)+string2.Length, string1.Length - (string1.IndexOf(string2)+string2.Length));

string1 = string1_part1 + string1_part2;

それが役に立てば幸い。最初に出現したもののみを削除します。

于 2009-12-10T10:39:09.907 に答える
6

あなたはおそらくむしろ試してみたいと思うでしょう

string1 = string1.Replace(string2 + " ","");

そうしないと、真ん中に 2 つのスペースができてしまいます。

于 2009-12-10T09:08:56.557 に答える
5
string1.Replace(string2, "");

これにより、内のすべての出現が削除されることに注意してください。string2string1

于 2009-12-10T09:07:23.633 に答える
3

私の頭の上から、最初のインスタンスを削除するには、次のようにすることができます

var sourceString = "1234412232323";
var removeThis = "23";

var a = sourceString.IndexOf(removeThis);
var b = string.Concat(sourceString.Substring(0, a), sourceString.Substring(a + removeThis.Length));

リリースする前にテストしてください:o)

于 2009-12-10T09:35:01.990 に答える