我正在尝试从这个简单代码中的字符串中删除子字符串。但是 c# 并没有删除它:
stringCmd = "Haha WoWI am in love!"
stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);
删除后应该是“哈哈恋爱了!”
字符串在 .NET 中是不可变的
stringCmd = "Haha WoWI am in love!"
stringCmd = stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);
string.Remove
方法返回新字符串而不修改作为参数传递的字符串,因此您必须将其分配回您的变量:
stringCmd = stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);
您还应该知道string
.NET 中的 s 是不可变的。您可以在 MSDN 上阅读更多相关信息:string
(C# 参考)。
字符串是不可变的,因此它不会影响字符串,而是返回一个新字符串:
string stringCmd = "Haha WoWI am in love!"
string modified = stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);
Console.WriteLine(modified);
此方法返回删除了指定子字符串的字符串。所以你需要将它应用到另一个字符串:
string myString = stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);
或者您可以将其应用回自身:
stringCmd = stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);
我会尝试做 stringCmd = stringCmd.Remove(stringCmd.IndexOf("WoW"), 5);