如果我有两个字符串..说
string1="你好亲爱的 c'Lint"
和
string2="亲爱的"
..我想先比较字符串并删除匹配的子字符串..
上述字符串对的结果是:
“你好 c'Lint”
(即"Hello"和"c'Lint"之间有两个空格)
为简单起见,我们假设 string2 将是 string1 的子集 .. (我的意思是 string1 将包含 string2)..
如果我有两个字符串..说
string1="你好亲爱的 c'Lint"
和
string2="亲爱的"
..我想先比较字符串并删除匹配的子字符串..
上述字符串对的结果是:
“你好 c'Lint”
(即"Hello"和"c'Lint"之间有两个空格)
为简单起见,我们假设 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
within 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)
Try This One 只有一行代码...
string str1 = tbline.Text;
string str2 = tbsubstr.Text;
if (tbline.Text == "" || tbsubstr.Text == "")
{
MessageBox.Show("Please enter a line and also enter sunstring text in textboo");
}
else
{
**string delresult = str1.Replace(str2, "");**
tbresult.Text = delresult;
}**