在每一行中查找单词C#

因此,我正在编写一个程序,该程序逐行输入一个文本,然后如果该行包含单词问题,则应该输出是或否.
该程序正在运行,但是我必须按两次Enter键才能获得输出.
我得到的第一个输入是最后一行.第二个输入是,因此while循环可以中断.

有什么建议可以改善这一状况,而无需再次输入?

using System;
using System.Collections.Generic;

namespace Tester
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            List<string> stringList = new List<string>();
            string input = "";
            while ((input = Console.ReadLine()) != string.Empty)
            {
                var s = input.ToLower();
                stringList.Add(s.Contains("problem") ? "yes" : "no");
            }

            foreach (var str in stringList)
                Console.WriteLine(str);
            Console.ReadKey();
        }
    }
}

解决方法:

好吧,对于最后一个输出,您将输入一些内容.那时(input = Console.ReadLine())!= string.Empty进入,条件将通过.

循环将返回到该行并阻塞,直到您为其提供新的输入为止.然后,假设您只是键入enter,在这种情况下,循环将刚刚存在.这是预期的行为.

我不确定是什么让您为此感到不安.如果您真的想摆脱第二个回车键,也许可以在行中放入一些令牌(行/ q或其他内容),并且只要在行中找到令牌,就知道应该退出循环.

另外,您可以计算得到的输入数量,并确保得到的输入恰好是10或20.当达到该数字时,将在处理完最后一个输入后退出循环.

上一篇:经验丰富的程序员和其每日代码行数


下一篇:PHP-显示文件的多行,永不重复