You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

回文判断编程练习:如何忽略空格将字符串存入字符数组?

解决回文判断中忽略空格的问题

嘿,我来帮你搞定这个空格的问题~

你当前代码的核心问题是:你创建的charArray长度和原输入字符串完全一致,当遇到空格用continue跳过的时候,数组中对应的位置并没有被赋值,会保留char类型的默认值(也就是空字符'\0'),最后转成字符串时这些空字符会被保留,看起来就像空格还在一样。

这里给你两种简单的解决办法:

方法一:用动态列表存储非空格字符

用List<char>来动态添加不需要过滤的字符,这样就不用提前固定数组长度,避免空字符的问题:

Console.Write("Insert string: ");
string input = Console.ReadLine();
List<char> charList = new List<char>();
for (int i = 0; i < input.Length; i++)
{
    if (!Char.IsWhiteSpace(input, i))
    {
        charList.Add(input[i]);
    }
}
string original = new string(charList.ToArray());

方法二:用LINQ简化过滤(更简洁)

如果你熟悉LINQ的话,可以一行代码完成空格过滤,代码更简洁易懂:

Console.Write("Insert string: ");
string input = Console.ReadLine();
string original = new string(input.Where(c => !Char.IsWhiteSpace(c)).ToArray());

额外小建议

另外,判断回文的时候通常需要忽略大小写(比如"A man a plan a canal Panama"应该被判定为回文),你可以在过滤空格后把字符串统一转成小写或大写:

string processed = original.ToLower();
// 然后用processed来做回文判断

内容的提问来源于stack exchange,提问作者Jesse Kämäräinen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:16:21