不从字符串中删除子字符串

时间:2013-09-04 14:27:47

标签: c# substring

我试图在这个简单的代码中从字符串中删除子字符串。但是c#没有删除它:

stringCmd = "Haha WoWI am in love!"
stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);

删除后应该"哈哈相爱!"

5 个答案:

答案 0 :(得分:7)

String在.NET中是不可变的

stringCmd = "Haha WoWI am in love!"
stringCmd = stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);

答案 1 :(得分:6)

string.Remove方法返回新字符串而不修改作为参数传递的字符串,因此您必须将其分配回变量:

stringCmd = stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);

您还应该知道.NET中的string是不可变的。您可以在MSDN上阅读有关该内容的更多信息:string (C# Reference)

答案 2 :(得分:3)

字符串是不可变的,因此它不会影响字符串,而是返回一个新字符串:

string stringCmd = "Haha WoWI am in love!"
string modified = stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);
Console.WriteLine(modified);

答案 3 :(得分:3)

此方法返回删除了指定子字符串的字符串。所以你需要将它应用到另一个字符串:

string myString = stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);

或者您可以将其应用回自身:

stringCmd = stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);

答案 4 :(得分:1)

我会尝试做 stringCmd = stringCmd.Remove(stringCmd.IndexOf(“WoW”),5);