这有什么原因吗?我问这个问题是因为如果你需要使用大量的空字符,那么你就会陷入与你使用大量空字符串时相同的情况。

编辑:这种用法的原因是:

myString.Replace ('c', '')

所以从myString中移除所有的'c'实例。


当前回答

如果你想删除满足特定条件的字符,你可以使用这个:

string s = "SoMEthInG";
s = new string(s.Where(c => char.IsUpper(c)).ToArray());

(这将在字符串中只留下大写字符。)

换句话说,您可以“使用”字符串作为IEnumerable<char>,对其进行更改,然后将其转换回如上所示的字符串。

同样,这不仅允许因为lambda表达式而删除特定的字符,尽管如果您像这样更改lambda表达式可以这样做:c => c != 't'。

其他回答

如果要消除字符串中的空字符,下面的方法可以工作。只需转换为您想要的任何数据类型表示。

private void button1_Click(object sender, EventArgs e)
{

    Int32 i;

    String name;

    Int32[] array_number = new int[100];

    name = "1 3  5  17   8    9    6";

    name = name.Replace(' ', 'x');

    char[] chr = name.ToCharArray();


    for (i = 0; i < name.Length; i++)
    {
        if ((chr[i] != 'x'))
        {
            array_number[i] = Convert.ToInt32(chr[i].ToString());
            MessageBox.Show(array_number[i].ToString());
        }
    }
}

与字符串不同,char是一个大小固定的离散的东西。字符串实际上是字符的容器。

所以,Char。在这种情况下,空是没有意义的。如果你有一个char,它就不是空的。

从字符串中删除字符最简单的方法是修剪它

Cl = Cl。削减(' ');

删除字符串中的所有空格

没有空字符这种东西。它总是包含一些东西。甚至“\0”也是一个字符。

没有空char这样的东西。你能得到的最接近的是“\0”,Unicode“null”字符。既然你可以将它嵌入到字符串字面量中,或者很容易地表达它,为什么要为它设置一个单独的字段呢?同样,“很容易混淆”和“”参数不适用于“\0”。

如果你能给出一个例子,说明你想在哪里使用它,以及为什么你认为它会更好,这可能会有帮助……