C# 从字符串中删除已知子字符串

C# 从字符串中删除已知子字符串,c#,.net,string,substring,C#,.net,String,Substring,我有一个字符串“Kishore kumar karaoke tracks”,我想从中删除子字符串“karaoke tracks”。我希望输出为“Kishore kumar” 为此,我使用以下代码行: artist = artist.TrimEnd(new char[] {'k','a','r','a','o','k','e', ' ', 't','r','a','c','k','s'}); 但是,我得到的输出是'Kishore kum',也就是说,我没有得到最后2个字符'ar' 我哪里出错了?

我有一个字符串“Kishore kumar karaoke tracks”,我想从中删除子字符串“karaoke tracks”。我希望输出为“Kishore kumar”

为此,我使用以下代码行:

artist = artist.TrimEnd(new char[] {'k','a','r','a','o','k','e', ' ', 't','r','a','c','k','s'});
但是,我得到的输出是'Kishore kum',也就是说,我没有得到最后2个字符'ar'


我哪里出错了?

您可以使用一个简单的
字符串执行
artist=artist.Replace(“卡拉OK曲目”).Trim()
。Replace
也可以:

artist = artist.Replace(" karaoke tracks", "");

注意:我在前面添加了一个空格,因此结果是
“Kishore kumar”
,而不是
“Kishore kumar”
,您也可以这样做

artist.Replace(" karaoke tracks",string.Empty);
如果您想忽略案例,也可以这样做:

artist = Regex.Replace(artist, "karaoke tracks", string.Empty, RegexOptions.IgnoreCase).Trim();

在Trim中,您定义了要从
artist
中删除的角色。但是它也有
r
a
字符

所以当
karaoke曲目
结束时,下一个是
kumar的
ar
,如果你明白我的意思的话


您可以像其他人解释的那样使用替换功能。

@Habib谢谢。成功了:)
artist = Regex.Replace(artist, "karaoke tracks", string.Empty, RegexOptions.IgnoreCase).Trim();