【问题标题】:c# paragraph delimiter in text read from keyboardc#从键盘读取的文本中的段落分隔符
【发布时间】:2013-01-07 09:22:24
【问题描述】:

如何让用户在输入或回车之前输入更多的段落?

知道在每个段落之后都应该按 Enter 以标记他完成了该段落。

我要数这几段。如果从文件中读取文本,也许可以(我仍然不确定我在寻找什么分隔符来计算段落)。

但是当您从键盘读取用户输入的文本时,我如何计算段落 - 不知道。

假设用户启动并输入一些语句,然后按回车键...程序完成... 1 段就是这样。

如何让用户输入 2 个或更多段落并计算它们?

我可能更喜欢简单的“初学者”方法而不是正则表达式...我可以计算句子但不能以任何方式从键盘输入的段落...可能希望成为一个循环或其他允许用户输入更多的东西一个段落,而不是用户在完成段落输入时会做什么?点击再次进入......所以混乱,混乱,混乱......

【问题讨论】:

  • 使用 RichTextBox 或 TextBox 并将 MultiLine 设置为 true。

标签: c# text analysis delimiter paragraph


【解决方案1】:

这个怎么样:

List<string> lines = new List<string>();
string line = Console.ReadLine();
while(!string.IsNullOrEmpty(line))
{
    lines.Add(line);
    line = Console.ReadLine();
}

然后lines 将包含用户输入的所有段落,并且他们可以在不输入任何内容的情况下按 Enter 来指示其输入的结束。

编辑:如果您只需要计算用户输入的段落数(而不是存储它们),那么这将起作用:

int paragraphsEntered = 0;
string line = Console.ReadLine();
while(!string.IsNullOrEmpty(line))
{
    paragraphsEntered++
    line = Console.ReadLine();
}
Console.WriteLine("You entered {0} paragraph(s).", paragraphsEntered);

【讨论】:

  • hmm 可能就像我想计算行数,因为行将是由“/n”分割的段落 - 它可能有效,我将尝试从文件中读取文本。但我不知道如何不断地让用户输入更多的段落,然后再按回车键。 Idea 可能是一个 while 循环,但没有实现的想法。
  • 就像用户输入一个句子,另一个句子然后点击回车。然后完成此操作,我有 2 个句子和 1 个段落。但我不知道如何让用户输入超过 1 个段落而不在他们之间按回车键,只有在他/她完成输入时才按回车键(因为我知道段落将由“输入”键分隔)。
  • 也许我的帖子不够清楚,但上面的想法是用户会在每个段落之后按 Enter,然后在最后按 Enter 一次以表明他们完成了。这没有意义吗?
  • 嗯我不知道我是否可以使用这个“列表”类,因为我还没有正式学习它。带有do while循环的想法,在每个段落之后输入并在输入末尾输入两个输入对我来说可以使用,所以谢谢。这很简单,但就是想不起来。
  • 事实上,我认为我发现不好的是要求:该程序必须允许在最后一次“输入”键击之前输入更多段落。 -> 这会导致我不得不用“输入”以外的东西来分割段落吗?那会是什么? :-)) 据我所知,段落通常在 MS Word 之类的内容中由“enter”键分隔。
【解决方案2】:

如果您使用的是 WinForms,您可以使用 TextBox 并将 Multiline 设置为 true。请查看TextBox Class 文档并附上如何操作的示例,或者您可以使用RichTextBox Class

为了计算段落,您可以使用以下代码:

var paragraphs = myTextBoxControl.Text.Split('\n').Count;

【讨论】:

  • 谢谢。所以我将按 '\n' 计算段落 - 无论如何我都需要使用简单的初学者方法,所以我会做一个 foreach 并查看每个字符,然后当我发现 '\n' 将计为段落。
  • 是的,你可以这样做,只计算 '\n' 如果你需要迭代每个段落,你可以这样:foreach (var paragraph in myText.Split('\n')) { numberOfParagraphs++; // do some work with paragraph }
猜你喜欢
  • 1970-01-01
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-07
  • 1970-01-01
  • 1970-01-01
  • 2015-05-21
相关资源
最近更新 更多