在C#中用空字符替换空格

8
如何用空白替换任意字符。例如:
1 : string inputString = "This Is Stack OverFlow";
2 : string outputString = inputString.Replace(' ', '');

expected output = "ThisIsStackOverFlow";

我尝试了第二行代码,但它显示在 Replace 方法的第二个参数中是空的字符字符串。有没有人可以告诉我我的 Replace 方法有什么问题,为什么它不能像我们通常在字符串中使用的空白一样(例如:"")?


可能是从C#字符串中删除字符的重复问题。 - Connor McGuinness
很抱歉发布这样一个简单的问题,我应该寻找它的重载方法并且我已经得到了答案,它是Replace(string,string)方法可以完成我的工作,但仍然想知道为什么空值在Replace(char,char)方法的第二个参数中不起作用。 - Ashwin
正如我在答案中所述,'' 不是一个有效的字符。实际上,你想要的是 没有字符,因此你不能使用那种表示法,而需要使用 string。最接近的选项是空字符,但你不想要那个。 - Andrew
2个回答

20

因为您使用的是Replace(char, char)方法,而不是Replace(string, string)方法(''不是有效的字符)。请使用以下代码:

string ouputString = inputString.Replace(" ", "");

-1
你可以简单地使用'\0'字符
Console.WriteLine("String w i t h. Holes !".Replace(' ','\0'));

已经在9年前的评论中提到过。如果你要将其转化为完整的答案,至少应该提及在.NET中将NUL字符嵌入字符串中的后果。 - undefined
这段话没有明确说明如何写入“no character char”,所以可能对某些人有帮助。 我不知道.NET是否有所不同,但在一些语言中,\0 用于标记字符串的结束。不过上面的代码在C#中运行良好,解决了这里提出的问题。因此这是完整的答案。 如果你想详细说明NUL字符的后果,请继续。谢谢 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接