如何将BodyText(Sentences)拆分为特定数量的单词并将它们放入数组中

时间:2014-08-31 07:05:23

标签: c# arrays split

我想将BodyText(一些Sentences =超过3000个单词)分成特定数量的单词(例如500个单词),并将它们放入一个数组中。 意味着该数组的每个块应该有500个单词,我们将在最后一个块中使用其余的块。

3 个答案:

答案 0 :(得分:3)

我使用了richtextbox和一个列表。

List<string> words=new List<string>();
string[] splittedWords = rich.Text.Split(' ');
int counter = 0;
StringBuilder tempWordHolder=new StringBuilder();

foreach (string word in splittedWords)
{
    tempWordHolder.Append(" ");
    tempWordHolder.AppendLine(word);

    counter++;
    if (counter < 500)
        continue;

    counter = 0;
    words.Add(tempWordHolder.ToString());
    tempWordHolder.Clear();
}

if (tempWordHolder.Length > 0)
{
    words.Add(tempWordHolder.ToString());
}

答案 1 :(得分:1)

如果要分割单词的常规字符是空格,请尝试此操作。它将单词拆分为空格,然后将它们按500组分组列入列表:

string[] sentences = bodyText.Split(' ');

List<string[]> parts = new List<string[]>();
for (int i = 0; i < sentences.Length; i += 500)
{
    parts.Add(sentences.Skip(i).Take(500).ToArray());
}

如果您希望最终结果在数组中,可以使用ToArray()

string[][] endArray = parts.ToArray();

答案 2 :(得分:0)

因为你对单词很感兴趣。整个文本可以按空格或换行分割。分裂本身会给你一系列的单词。并根据您的要求开始采用索引所需的字数。并开始推送到新的子数组。请告诉我是否需要代码示例。