温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#中怎么判断单词的个数

发布时间:2021-07-07 18:06:15 来源:亿速云 阅读:316 作者:Leah 栏目:编程语言

C#中怎么判断单词的个数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

方法一:

判断英文单词个数:

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.排序使用插入排序(稳定)

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#中怎么判断单词的个数的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI