gpt4 book ai didi

c# - 使用队列从输入字符串中获取一些字符。返回值很奇怪

转载 作者:太空宇宙 更新时间:2023-11-03 19:19:54 26 4
gpt4 key购买 nike

我在我的代码中找不到任何错误。
在这里,我试图从字符串中选择所有数字:
(只是为了简化示例,我想选择满足某些条件的数字)
我使用队列因为我不想处理数组的索引。

        Console.Write("enter string: ");
string s = Console.ReadLine();
char[] array = s.ToCharArray();
Queue<char> q = new Queue<char>();

for (int i = 0; i < array.Length; i++)
{
q.Enqueue(array[i]);
}

char[] new_array = new char[q.Count];
for (int i = 0; i < q.Count; i++)
{
new_array[i] = q.Dequeue();
}

Console.WriteLine(new String(new_array));

输入字符串:123456
输出有点奇怪:
123

另一个输入:123
输出:12

当然我犯了一些错误)但一切似乎都很好
提前谢谢你

最佳答案

问题是第二个循环:

    for (int i = 0; i < q.Count; i++)
{
new_array[i] = q.Dequeue();
}

随着 q.Count 在每次循环迭代中递减,而 i 在每次交互中递增,您只能得到一半的元素。

尝试类似的东西:

    for (int i = 0; q.Count > 0; i++)
{
new_array[i] = q.Dequeue();
}

同时考虑:Queue.toArray

关于c# - 使用队列从输入字符串中获取一些字符。返回值很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178916/

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