计算输入文本中的单词数

时间:2015-01-13 16:55:03

标签: c# multidimensional-array

我将输入段落分为.并将其存储在如下数组中:

string[] totalSentences = inputPara.Split('.')

然后调用下面的函数来计算每个句子中的单词总数,如下所示:

public void initParaMatrix()
{
    int size = 0;
    for (int i = 0; i < totalSentences.Length; i++)
    {
        string[] words = totalSentences[i].Split();
        size = size + words.Length;
        //rest of the logic here...
    }
    matrixSize = size;
    paraMatrix = new string[matrixSize, matrixSize];
}

paraMatrix 是一个2D矩阵,等于我需要在逻辑中生成的所有单词的长度。 这里的问题是当我只输入一个有5个单词的句子时,size变量得到值7.我尝试了调试器,我得到的总数是 2 而不是 1

句子1.“我们目前关于动议的想法。”的&GT;这是只有5个单词的实际句子

句子2.“”&gt;这是我得到的确切的第二句话。

以下是截图:

enter image description here

为什么我在这里得到两个句子以及大小如何获得价值7?

2 个答案:

答案 0 :(得分:2)

这很有道理。如果第二句只有一个&#34; &#34;,你沿着#34; &#34;,那么你将有两个空字符串。这里最简单的方法是更改​​拆分行,并添加修剪:

string[] words = totalSentences[i].Trim().Split();

我不知道您使用的Split版本是什么,因为它不接受任何参数,但是如果您使用String.Split,则可以设置第二个参数,以便自动删除空条目使用选项StringSplitOptions.RemoveEmptyEntries

答案 1 :(得分:0)

您没有将大小整数重置为零。所以这就是你为第二句得到7分的原因。 对于第二个句子,即空格,请尝试使用inputPara.Trim()来删除字符串末尾的空格。