添加到char数组时忽略空格

时间:2018-01-24 15:53:52

标签: c# arrays

我正在进行学校练习,用户输入一个字符串,程序必须检查它是否是回文。我目前唯一的问题是我不能让循环忽略输入字符串中包含的空格。

Console.Write("Insert string: ");
string input = Console.ReadLine();
char[] charArray = new char[input.Length];

for (int i = 0; i < input.Length; i++)
{
    if (Char.IsWhiteSpace(input, i))
    {
        continue;
    }
    else
    {
        charArray[i] += input[i];
    }
}
string original = new string(charArray);

我似乎已经尝试了所有我知道的东西,但无论我尝试什么,空格都会被添加到数组中。对此有一个简单的解决方案吗?

4 个答案:

答案 0 :(得分:1)

[编辑]好的,您可以尝试替换方法,将您提供的内容替换为您想要的内容(空间无空间)

string str = "This is a test";
str = str.Replace(" ", "");
MessageBox.Show(str);

答案 1 :(得分:0)

如何使用框架并走这条路线:

char[] charArray = input.Replace(" ", "").ToCharArray();

答案 2 :(得分:0)

也许这可行吗?

Console.Write("Insert string: ");
string input = Console.ReadLine();
char[] charArray = input.Where(character => !Char.IsWhitespace(character)).ToArray();

答案 3 :(得分:0)

遇到空格时,您永远不会更新其位置的值,因此它仍然是一个空格。所以,写一个新的数组/字符串:

var newString = string.Empty;

for(int i = 0; i < input.Length; i++)
{
    if(!Char.IsWhiteSpace(input[i]))
    {
        newString += input[i];
    }
}

或更类似于您的代码:

Console.Write("Insert string: ");
string input = Console.ReadLine();
char[] charArray = new char[input.Length];
var newString = string.Empty;

for (int i = 0; i < input.Length; i++)
{
    if (Char.IsWhiteSpace(input, i))
    {
        continue;
    }
    else
    {
        newString += input[i];
    }
 }
Console.WriteLine(newString);