我正在进行学校练习,用户输入一个字符串,程序必须检查它是否是回文。我目前唯一的问题是我不能让循环忽略输入字符串中包含的空格。
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);
我似乎已经尝试了所有我知道的东西,但无论我尝试什么,空格都会被添加到数组中。对此有一个简单的解决方案吗?
答案 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);