C#判斷單詞個(gè)數(shù)方法總結(jié)
方法一:
判斷英文單詞個(gè)數(shù):
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#統(tǒng)計(jì)英文字符串中單詞個(gè)數(shù)思路如下:
1.使用的Hashtable(高效)集合,記錄每個(gè)單詞出現(xiàn)的次數(shù)
2.采用ArrayList對(duì)Hashtable中的Keys按字母序排列
3.排序使用插入排序(穩(wěn)定)
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;
  //去除標(biāo)點(diǎn)
  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);
  //對(duì)Hashtable中的Keys按字母序排列
  keysList.Sort();
  //按次數(shù)進(jìn)行插入排序【穩(wěn)定排序】,所以相同次數(shù)的單詞依舊是字母序
  string tmp = String.Empty;
  int valueTmp = 0;
  for (int i = 1; i < keysList.Count; i++)
  {
  tmp = keysList[i].ToString();
  valueTmp = (int)ht[keysList[i]];//次數(shù)
  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#利用GDI+畫圖的基礎(chǔ)實(shí)例教程
欄 目:C#教程
下一篇:C#基于FTP協(xié)議的簡(jiǎn)易軟件自動(dòng)升級(jí)程序
本文標(biāo)題:C#判斷單詞個(gè)數(shù)方法總結(jié)
本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/5222.html
您可能感興趣的文章
- 01-10C#實(shí)現(xiàn)判斷當(dāng)前操作用戶管理角色的方法
 - 01-10WinForm判斷關(guān)閉事件來源于用戶點(diǎn)擊右上角“關(guān)閉”按鈕的方法
 - 01-10http圖片上傳安全性問題 根據(jù)ContentType (MIME) 判斷其實(shí)不準(zhǔn)確、不
 - 01-10C#實(shí)現(xiàn)ComboBox控件顯示出多個(gè)數(shù)據(jù)源屬性的方法
 - 01-10C#判斷三角形的類型
 - 01-10C#比較二個(gè)數(shù)組并找出相同或不同元素的方法
 - 01-10C#中判斷一個(gè)集合是否是另一個(gè)集合的子集的簡(jiǎn)單方法
 - 01-10C# WinForm 判斷程序是否已經(jīng)在運(yùn)行,且只允許運(yùn)行一個(gè)實(shí)例,附
 - 01-10C# 判斷字符為空的6種方法的效率實(shí)測(cè)對(duì)比
 - 01-10C# 文件操作函數(shù) 創(chuàng)建文件 判斷存在
 


閱讀排行
- 1C語言 while語句的用法詳解
 - 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
 - 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
 - 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
 - 5c語言計(jì)算三角形面積代碼
 - 6什么是 WSH(腳本宿主)的詳細(xì)解釋
 - 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
 - 8正則表達(dá)式匹配各種特殊字符
 - 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
 - 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
 
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
 - 01-10關(guān)于ASP網(wǎng)頁(yè)無法打開的解決方案
 - 01-10WinForm限制窗體不能移到屏幕外的方法
 - 01-10WinForm繪制圓角的方法
 - 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
 - 01-10WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動(dòng)新
 - 01-10C#停止線程的方法
 - 01-10C#實(shí)現(xiàn)清空回收站的方法
 - 01-10C#通過重寫Panel改變邊框顏色與寬度的
 - 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已
 
隨機(jī)閱讀
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
 - 01-10C#中split用法實(shí)例總結(jié)
 - 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
 - 01-10delphi制作wav文件的方法
 - 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 - 04-02jquery與jsp,用jquery
 - 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
 - 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
 - 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
 


