日期:2014-05-17  浏览次数:21004 次

C#单词计数
小弟最近在做一个单词计数的程序,有几个问题不知道怎么解决,烦请各位大神给个解决的办法。
(1)char[] sep = {' ',',','.','?','!','(',')',';',':'}这是我定义的一些确认单词的分隔符,有个问题就是,我定义的是2个单词间有一个空格,如果单词间有2个空格如何解决?
(2)我先把要处理的文件的行数统计下来,但是,如何处理空行?
 string fileName = @"e:\2.txt";
            DateTime startReadTime = DateTime.Now;
            StreamReader sr = File.OpenText(fileName);   //打开文件
            TimeSpan costOfRead = DateTime.Now.Subtract(startReadTime);            
            double readFileTime = costOfRead.TotalMilliseconds;            
            string currentLine;           
            char[] sep = {' ',',','.','?','!','(',')',';',':'};           //预定义单词间的分隔符           
            string str;
            ArrayList fileLines = new ArrayList();
            DateTime startWordCount = DateTime.Now;
            while ((currentLine = sr.ReadLine()) != null)
            {
                if (currentLine.Length == 0)
                    continue;
                currentLine.ToLower();
                fileLines.Add(currentLine);                                       
            }
c# 单词计数

------解决方案--------------------
连续两个分隔符,对你统计单词没有影响,两个分隔符中间有0个字符当然不算是一个单词。

换行也是一个分隔符。换行之后有一些空格,然后又有一个换行,这也跟上面一样,你只是分析出一串连续的分隔符,但是分隔符与分隔符之间并没有单词(字符数为0),那么这个空行自然也不会影响单词数统计。
------解决方案--------------------
http://bbs.csdn.net/topics/360200867