C#中的字数统计算法我正在寻找一个好的字数统计类或函数。当我从Internet复制和粘贴某些内容并将其与我的自定义字数统计算法和MSWord进行比较时,它总是相差10%多一点。我认为这是矫枉过正。那么你们知道c#中准确的字数统计算法吗?String.Split由预定义的字符组成。使用标点符号、空格(删除多个空格)和任何其他您认为是“分词”的字符您尝试过什么?我确实看到以前的用户固定了链接,但这里有一些使用正则表达式或字符匹配的示例。希望它有所帮助并且没有人受到伤害X-)String.Splitmethod(Char[])C#中的单词计数器C#wordcount正如@astander建议的那样,您可以按如下方式执行String.Split:string[]a=s.Split(newchar[]{'',',',';','.','!','"','(',')','?'},StringSplitOptions.RemoveEmptyEntries);通过传入一个您可以在多个单词分隔符上拆分的字符数组。删除空条目将阻止您对非单词进行计数。使用正则表达式查找单词(例如[w]+)并计算匹配项publicstaticRegexregex=newRegex("[\w]+",RegexOptions.Multiline|RegexOptions.CultureInvariant|RegexOptions.Compiled);regex.Match(_someString).Count之间你还需要检查换行符、制表符和不间断空格。我发现最好将源文本复制到StringBuilder并用空格替换所有换行符、制表符和句子结??尾。然后根据空格拆分字符串。我在ClipFlair中遇到了同样的问题,我需要为电影计算WPM(每分钟字数)添加字幕,所以我想到了以下内容一:可以在一个静态类中定义这个静态扩展方法,然后在任何需要使用这个扩展方法空间的类中为这个静态类的命名加上using子句。使用s.WordCount()调用扩展方法,其中s是字符串(标识符[变量/常量]或文字)publicstaticintWordCount(thisstrings){intlast=s.Length-1;整数计数=0;for(inti=0;i这是我的c#代码类的精简版本,用于计算单词、亚洲单词、字符等。这与MicrosoftWord几乎相同。我开发了用于计算MicrosoftWord文档中的单词的原始版本代码。以上就是C#学习教程:C#中字数统计算法分享的全部内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注---usingSystem;使用System.Collections.Generic;使用System.Linq;使用系统文本;使用System.Text.RegularExpressions;命名空间BL{publicclassWordCount{publicintNonAsianWordCount{get;放;}publicintAsianWordCount{get;放;}publicintTextLineCount{得到;放;}publicintTotalWordCount{得到;放;}publicintCharacterCount{得到;放;}publicintCharacterCountWithSpaces{得到;放;}//公共字符串文本{get;放;}publicWordCount(){}~WordCount(){}publicvoidGetCountWords(strings){#region正则表达式集合stringasianExpression=@"[u3001-uFFFF]";stringenglishExpression=@"[S]+";字符串LineCountExpression=@"[r]+";#endregion#region亚洲字符MatchCollectionasiancollection=Regex.Matches(s,asianExpression);AsianWordCount=asiancollection.Count;//亚洲字符数s=Regex.Replace(s,asianExpression,"");#endregion#region英文字符数MatchCollectioncollection=Regex.Matches(s,englishExpression);NonAsianWordCount=collection.Count;#endregion#region文本行数MatchCollectionLines=Regex.Matches(s,LineCountExpression);TextLineCount=Lines.Count;#endregion#region总字符数CharacterCount=AsianWordCount;CharacterCountWithSpaces=CharacterCount;foreach(匹配集合中的单词){CharacterCount+=word.Value.Length;CharacterCountWithSpaces+=word.Value.Length+1;}#endregion#region字符总数TotalWordCount=AsianWordCount+NonAsianWordCount;#endregion}}}publicstaticclassWordCount{publicstaticintCount(stringtext){intwordCount=0;text=text.Trim();//修剪空格if(text==""){return0;}//如果文本为空则结束foreach(stringwordintext.Split(''))//或使用任何您认为是分词器wordCount++的其他字符(而不是空格'');返回字数;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处:
