【问题标题】:How to count paragraphs in a text?如何计算文本中的段落?
【发布时间】:2016-01-26 18:34:17
【问题描述】:

我被困住了。 我将歌曲文本存储在一个字符串中。 我需要计算歌曲房屋(房屋由空行分隔。空行是我的分隔符)。 此外,我需要访问每个单词,因此我可以将单词与它的房子相关联。 我真的很感谢你的帮助

这是我的基本代码:

 var paragraphMarker = Environment.NewLine;
    var paragraphs = fileText.Split(new[] {paragraphMarker},
                                    StringSplitOptions.RemoveEmptyEntries);
    foreach (var paragraph in paragraphs)
    {
        var words = paragraph.Split(new[] {' '}, 
                              StringSplitOptions.RemoveEmptyEntries)
                             .Select(w => w.Trim());
        //do something
    }

【问题讨论】:

  • split + foreach + string.isnullorempty

标签: c#


【解决方案1】:

您应该能够在\r\n\r\n 上执行Regex.Split,这将是两个carridge return line feeds(假设您的空行实际上是空的)然后String.Split' ' 执行以获取每个单词中的各个单词段。

这会将其分成两个部分,然后计算每个部分中的单词。为简单起见,我每个位只有一个句子。

var poem = "Roses are red, violets are blue\r\n\r\nSomething something darkside";
var verses = System.Text.RegularExpressions.Regex.Split(poem, "\r\n");
foreach (var verse in verses)
{
  var words = verse.Split(' ');
  Console.WriteLine(words.Count());
}

您需要整理更多极端情况,例如标点符号等,但这应该给您一个起点。

【讨论】:

    【解决方案2】:

    String.Split 将使用您的分隔符作为标记创建一个数组。
    Array.Count 将告诉您数组中有多少个元素。

    例如,要查找这句话中的单词数:

    var count = @"Hello! This is a naive example.".Split(' ').Count;
    

    【讨论】:

    • empty line is my delimiter 不是空格。但这确实告诉了他之后如何获得每个单词。
    • @Prix:这是一个让他沿着路径移动的例子——不是开箱即用的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 2017-04-24
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 2014-07-22
    相关资源
    最近更新 更多