计算在文件中找到单词的次数

时间:2012-01-05 02:48:51

标签: c#

我想计算一个单词出现在文件中的次数。有一个简单的方法吗?

2 个答案:

答案 0 :(得分:2)

如果文件是直接文本文件,则在c#...

中非常简单
private static int GetWordCount(string fileName, string word)
{
     string content = File.ReadAllText(fileName);
     string[] words = content.Split(new char[] {'.', '.', ' ', '?', '\n', '\r'},
                  StringSplitOptions.RemoveEmptyEntries);
     return words.Count(q => q == word);
}

此方法将文本读入字符串,然后根据某些分隔符拆分字符串。然后调用LINQ函数来获取和重新计算计数。

答案 1 :(得分:0)

static void Main(string[] args)
{
     StreamReader oReader;
     if (File.Exists(@"C:\TextFile.txt"))
     {
          Console.WriteLine("Enter a word to search");
          string cSearforSomething = Console.ReadLine().Trim();
          oReader = new StreamReader(@"C:\TextFile.txt");
          string cColl = oReader.ReadToEnd();
          string cCriteria = @"\b"+cSearforSomething+@"\b";
          System.Text.RegularExpressions.Regex oRegex = new System.Text.RegularExpressions.Regex(cCriteria,RegexOptions.IgnoreCase);

          int count = oRegex.Matches(cColl).Count;
          Console.WriteLine(count.ToString());
     }

     Console.ReadLine();
}

OR

另一种方法。这可能有助于您更好地理解。

使用Collections / Generics概念,我们将轻松达到我们的标准。请检查以下代码并根据您的场景进行更新。

1。)最初读取文本文件(使用filestream并导入IO命名空间),

System.IO.StreamReader StreamReader1 =
new System.IO.StreamReader(Server.MapPath("test.txt"));

2。)附加到字符串构建器中。

StringBuilder sbData = new StringBuilder();
sbData.Append(StreamReader1.ReadToEnd());

3。)从StringBuilder(空格,句号,问号,感叹号,撇号,新行)中分离单词

string[] arrDataCollection = sbData.ToString().Split(' ');

4.。)为SortedList创建字典。

SortedList<int, string> slData = new SortedList<int, string>();

5.。)循环溢出数据并获取不同的集合。

for (int i = 0; i < Words.Length; i++)
{
    slData.Add(i, arrDataCollection[i]);
}

6。)获取不同的单词,计算并保存到一个Hashtable

Hashtable htCollections = new Hashtable();
foreach (KeyValuePair<int, string> kvp in slData )
{
    table.Add(kvp.Value, kvp.Key );
}

7。)最后根据我们的要求从Hashtable过滤它,希望这对你有帮助。