我是靠谱客的博主 心灵美咖啡,这篇文章主要介绍C#判断单词个数方法总结,现在分享给大家,希望可以做个参考。

方法一:

判断英文单词个数:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System; namespace FindWord { class Program { static void Main(string[] args) { string space = " "; string str = "hello world" + space; int count = 0; bool start = false; for (int i=0;i<str.Length;i++) { if (Char .IsLetter(str[i])) { start = true; } if (!Char.IsLetter(str[i])&&start) { count++; start = false; } } Console.WriteLine(count); Console.ReadLine(); } } }

方法二:

C#统计英文字符串中单词个数思路如下:

1.使用的Hashtable(高效)集合,记录每个单词出现的次数

2.采用ArrayList对Hashtable中的Keys按字母序排列

3.排序使用插入排序(稳定)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
public void StatisticsWords(string path) {   if (!File.Exists(path))   {   Console.WriteLine("文件不存在!");   return;   }   Hashtable ht = new Hashtable(StringComparer.OrdinalIgnoreCase);   StreamReader sr = new StreamReader(path, System.Text.Encoding.UTF8);   string line = sr.ReadLine();   string[] wordArr = null;   int num = 0;   while (line.Length > 0)   {   // MatchCollection mc = Regex.Matches(line, @"b[a-z]+", RegexOptions.Compiled | RegexOptions.IgnoreCase);   //foreach (Match m in mc)   //{   // if (ht.ContainsKey(m.Value))   // {   // num = Convert.ToInt32(ht[m.Value]) + 1;   // ht[m.Value] = num;   // }   // else   // {   // ht.Add(m.Value, 1);   // }   //}   //line = sr.ReadLine();   wordArr = line.Split(' ');   foreach (string s in wordArr)   {   if (s.Length == 0)   continue;   //去除标点   line = Regex.Replace(line, @"[p{P}*]", "", RegexOptions.Compiled);   //将单词加入哈希表   if (ht.ContainsKey(s))   {   num = Convert.ToInt32(ht[s]) + 1;   ht[s] = num;   }   else   {   ht.Add(s, 1);   }   }   line = sr.ReadLine();   } ArrayList keysList = new ArrayList(ht.Keys);   //对Hashtable中的Keys按字母序排列   keysList.Sort();   //按次数进行插入排序【稳定排序】,所以相同次数的单词依旧是字母序   string tmp = String.Empty;   int valueTmp = 0;   for (int i = 1; i < keysList.Count; i++)   {   tmp = keysList[i].ToString();   valueTmp = (int)ht[keysList[i]];//次数   int j = i;   while (j > 0 && valueTmp > (int)ht[keysList[j - 1]])   {   keysList[j] = keysList[j - 1];   j--;   }   keysList[j] = tmp;//j=0   }   //打印出来   foreach (object item in keysList)   {   Console.WriteLine((string)item + ":" + (string)ht[item]);   }   }

最后

以上就是心灵美咖啡最近收集整理的关于C#判断单词个数方法总结的全部内容,更多相关C#判断单词个数方法总结内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(127)

评论列表共有 0 条评论

立即
投稿
返回
顶部