gpt4 book ai didi

c# - 计算富文本框中所有单词的最有效方法是什么?

转载 作者:行者123 更新时间:2023-11-30 18:57:59 24 4
gpt4 key购买 nike

我正在编写文本编辑器,需要提供实时字数统计。现在我正在使用这个扩展方法:

 public static int WordCount(this string s)
{
s = s.TrimEnd();
if (String.IsNullOrEmpty(s)) return 0;
int count = 0;
bool lastWasWordChar = false;
foreach (char c in s)
{
if (Char.IsLetterOrDigit(c) || c == '_' || c == '\'' || c == '-')
{
lastWasWordChar = true;
continue;
}
if (lastWasWordChar)
{
lastWasWordChar = false;
count++;
}
}
if (!lastWasWordChar) count--;
return count + 1;
}

我已将其设置为每十分之一秒对 richtextbox 的文本运行一次字数统计(如果选择开始与方法上次运行时不同)。问题是在处理非常长的文件时,字数统计会变慢。为了解决这个问题,我正在考虑只对当前段落进行字数统计,每次记录字数并将其与上次字数统计时的字数进行比较。然后它将两者之间的差异添加到总字数中。这样做会导致很多并发症(如果用户粘贴,如果用户删除段落等)。这是提高我的字数的合乎逻辑的方法吗?或者有什么我不知道的东西可以让它变得更好吗?

编辑:在不同的线程上运行字数统计是否有效?我对线程了解不多,将进行研究。

我使用的示例文本:

最佳答案

您可以根据空白进行更简单的字数统计:

public static int WordCount(this string s)
{
return s.Split(new char[] {' '},
StringSplitOptions.RemoveEmptyEntries).Length;
}

MSDN provides this example ,应该可以更快地为您提供大文件的准确字数统计。

关于c# - 计算富文本框中所有单词的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2226161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com