计算一个单词在文件中出现的次数
本文关键字:文件 单词 一个 计算 | 更新日期: 2023-09-27 18:19:25
我想计算一个单词在文件中出现的次数。有简单的方法吗?
如果文件是一个直接的文本文件,那么在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函数来获取并返回计数。
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();
}
或
另一种方法。这可以帮助你更好地理解。
使用集合/泛型的概念,我们将很容易实现我们的标准。请检查以下代码并根据您的场景进行更新。
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
中过滤它,希望这对你有帮助。