C# 从输入文本计算字数

C# 从输入文本计算字数,c#,multidimensional-array,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 = si

我将输入段落按
拆分,并将其存储在如下数组中:

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];
}
然后调用下面的函数,该函数计算每个句子的总字数,如下所示:

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];
}
public void initParaMatrix()
{
int size=0;
for(int i=0;i
paraMatrix
是一个2D矩阵,等于我需要在逻辑中生成的所有单词的长度。 这里的问题是,当我只输入一个包含5个单词的句子时,
size
变量的值为7。我尝试了调试器,得到的句子总数是2,而不是1

第1句。“我们现在对运动的看法。”>这是一个只有5个单词的实际句子

第2句。这正是我听到的第二句话。

以下是截图:


为什么我在这里得到两句话,尺寸是如何得到值7的?

这很有道理。如果第二个句子只有一个“”,并且您沿着“”拆分,那么您将得到两个空字符串。此处最简单的操作是更改进行拆分的线,然后添加修剪:

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

我不知道您使用的是哪个版本的Split,因为它不接受任何参数,但是如果您使用
String.Split
,则可以设置第二个参数,以便通过使用
StringSplitOptions.RemoveEmptyEntries选项自动删除空条目。RemoveEmptyEntries
您不会将大小整数重置为零。这就是为什么你第二句话得7分。
对于第二个句子,它是一个空格,请尝试inputPara.Trim(),它将删除字符串末尾的空格。

可以调用
拆分(params char[]分隔符)
重载,而无需传递任何参数。默认行为是在空白字符上拆分。他们应该使用
Split(char[]分隔符,StringSplitOptions)
重载。@Daniel Gimenez:我使用了
Trim()
方法,但现在我得到的总数是6。但当我删除句子末尾的
(在真实场景中我无法做到)时,问题就解决了。最后有一个句点有什么问题?为什么它会导致计数增加?@Daniel Gimenez:
StringSplit.RemoveEmptryEntries
为我做了这项工作。像这样
string[]words=total句子[i].Split(new[]{”“},StringSplitOptions.removeMptyEntries)非常感谢:)我尝试了
inputPara.Trim()
,但我仍然计算为6,您需要移动大小=0;在loopWell的第一个房间里,我不能那样做。我需要我的逻辑中的总数。解决了我的问题。谢谢你的帮助。