我试图在这个简单的代码中从字符串中删除子字符串。但是c#没有删除它:
stringCmd = "Haha WoWI am in love!"
stringCmd.Remove(stringCmd.IndexOf("WoW"), 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);