2つの文字列がある場合..言う
string1="Hello Dear c'Lint"
と
string2="親愛なる"
..最初に文字列を比較し、一致する部分文字列を削除したい..
上記の文字列ペアの結果は次のとおりです。
「こんにちはクリント」
(つまり、 "Hello"と"c'Lint"の間の 2 つのスペース)
簡単にするために、string2 は string1 のサブセットであると仮定します.. (つまり、string1 には string2 が含まれます)。
2つの文字列がある場合..言う
string1="Hello Dear c'Lint"
と
string2="親愛なる"
..最初に文字列を比較し、一致する部分文字列を削除したい..
上記の文字列ペアの結果は次のとおりです。
「こんにちはクリント」
(つまり、 "Hello"と"c'Lint"の間の 2 つのスペース)
簡単にするために、string2 は string1 のサブセットであると仮定します.. (つまり、string1 には string2 が含まれます)。
どうですか
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;
});
これだけを行います:
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;
それが役に立てば幸い。最初に出現したもののみを削除します。
あなたはおそらくむしろ試してみたいと思うでしょう
string1 = string1.Replace(string2 + " ","");
そうしないと、真ん中に 2 つのスペースができてしまいます。
string1.Replace(string2, "");
これにより、内のすべての出現が削除されることに注意してください。string2
string1
私の頭の上から、最初のインスタンスを削除するには、次のようにすることができます
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)