单词分析器源码

it2022-05-09  32

用正则表达式实现识别单词: using System.Text.RegularExpressions; //解析   private void button1_Click(object sender, System.EventArgs e)   {    //字符串不能为空    if(t_scr.Text=="")    {     MessageBox.Show("请输入一串字符!");     return;    }    TimeSpan t1=new TimeSpan(DateTime.Now.Ticks);    Regex myr=new Regex(@"\W+");    string soruce=t_scr.Text;    string[] danci=myr.Split(soruce);    int strLen=danci.Length;    string[] realStr=new string[strLen];    int j=0,current=0;    bool flag=false; //不存在    for(int i=0;i<strLen;i++)    {      j=0;     flag=false;     while(j<=current)     {      if(realStr[j]!=danci[i])       j++;      else      {       flag=true;       break;      }     }     if(flag)      continue;     realStr[current]=danci[i];     current++;    }    int realLen=current;    t_res.Text=string.Empty;    for(int i=0;i<realLen;i++)    {     current=0;     for(j=0;j<strLen;j++)     {      if(realStr[i]==danci[j])       current++;     }     t_res.AppendText(realStr[i]+" 出现次数:"+current+"\r\n");    }    TimeSpan t2=new TimeSpan(DateTime.Now.Ticks);    TimeSpan ts=t2.Subtract(t1).Duration();    msg.Text="原始字符串长度:"+strLen+"\r\n"+          "出现的非重复单词数:"+realLen+"\r\n"+                      "运行时间:"+ts.Minutes+"分"+ts.Seconds+"秒"+ts.Milliseconds+"毫秒"; } 注:本篇为单词分析器源码,用到了正则表达式优化算法 其中t_scr,msg,t_res为三个TextBox,t_scr存放输入的源字符串,msg为统计结果,t_res为输出的单词

转载于:https://www.cnblogs.com/tuyile006/archive/2006/12/19/596969.html

相关资源:词法分析器,判断pascal单词

最新回复(0)