gpt4 book ai didi

c# - 如何将字符串中的整数视为多位数字而不是单个数字?

转载 作者:太空宇宙 更新时间:2023-11-03 22:40:09 24 4
gpt4 key购买 nike

我的输入是一串整数,我必须检查它们是否为偶数,如果是,则将它们显示在控制台上。问题是我写的只检查单个数字而不检查数字。

string even = "";

while (true)
{
string inputData = Console.ReadLine();
if (inputData.Equals("x", StringComparison.OrdinalIgnoreCase))
{
break;
}

for (int i = 0; i < inputData.Length; i++)
{
if (inputData[i] % 2 == 0)
{
even +=inputData[i];

}
}

}
foreach (var e in even)
Console.WriteLine(e);
bool something = string.IsNullOrEmpty(even);
if( something == true)
{
Console.WriteLine("N/A");
}

例如,如果输入是:123456我的输出将是2个4个6(每个数字都需要换行显示)。我究竟做错了什么?感谢您的帮助。

最佳答案

使用string.Split得到独立的部分然后int.TryParse检查它是否是一个数字(检查 Parse v. TryParse )。然后只取偶数:

var evenNumbers = new List<int>();
foreach(var s in inputData.Split(" "))
{
if(int.TryParse(s, out var num) && num % 2 == 0)
evenNumbers.Add(num); // If can't use collections: Console.WriteLine(num);
}

(注意 out vars introduced in C# 7.0 的使用)

如果你可以使用 linq 那么类似于 this answer :

var evenNumbers = inputData.Split(" ")
.Select(s => (int.TryParse(s, out var value), value))
.Where(pair => pair.Item1)
.Select(pair => pair.value);

关于c# - 如何将字符串中的整数视为多位数字而不是单个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52687697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com