计算输入文本的单词数
Calculating number of words from input text
我将输入段落按 .
拆分并存储在这样的数组中:
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
是一个二维矩阵,等于我需要在我的逻辑中制作的所有单词的长度。
这里的问题是,当我只输入一个有 5 个单词的句子时,size
变量的值为 7。我尝试了调试器,但我得到的总共是 2 个句子共 1.
句子 1。"Our present ideas about motion." > 这是只有 5 个单词的真实句子
句子 2。" " > 这正是我得到的第二句话。
截图如下:
为什么我在这里得到两个句子以及大小如何得到值 7?
这很有道理。如果第二句话只有一个“”,而你沿着“”拆分,那么你将得到两个空字符串。最简单的方法是更改拆分行,并添加 trim:
string[] words = totalSentences[i].Trim().Split();
我不知道您使用的是哪个版本的 Split,因为它不接受任何参数,但是如果您使用 String.Split
,您可以设置第二个参数,以便使用选项 StringSplitOptions.RemoveEmptyEntries
.
您没有将大小整数重置为零。所以这就是为什么第二句话得 7 分的原因。
对于第二个句子,即 space,请尝试 inputPara.Trim(),它应该删除字符串末尾的 space。
我将输入段落按 .
拆分并存储在这样的数组中:
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
是一个二维矩阵,等于我需要在我的逻辑中制作的所有单词的长度。
这里的问题是,当我只输入一个有 5 个单词的句子时,size
变量的值为 7。我尝试了调试器,但我得到的总共是 2 个句子共 1.
句子 1。"Our present ideas about motion." > 这是只有 5 个单词的真实句子
句子 2。" " > 这正是我得到的第二句话。
截图如下:
为什么我在这里得到两个句子以及大小如何得到值 7?
这很有道理。如果第二句话只有一个“”,而你沿着“”拆分,那么你将得到两个空字符串。最简单的方法是更改拆分行,并添加 trim:
string[] words = totalSentences[i].Trim().Split();
我不知道您使用的是哪个版本的 Split,因为它不接受任何参数,但是如果您使用 String.Split
,您可以设置第二个参数,以便使用选项 StringSplitOptions.RemoveEmptyEntries
.
您没有将大小整数重置为零。所以这就是为什么第二句话得 7 分的原因。 对于第二个句子,即 space,请尝试 inputPara.Trim(),它应该删除字符串末尾的 space。