取得汉字首字母

it2024-12-21  6

不多说,直接上代码

代码 // 取得汉字首字母 // 只能取得gb2312一级汉字3755个,这段区位码是按拼音排序的。 using  System; using  System.Text; namespace  Test{     public   class  UpdateAdapter    {        [STAThread]         public   static   void  Main()        {            UpdateAdapter up  =   new  UpdateAdapter();            Console.WriteLine(up.GetChineseSpell( " 真有这么神奇? " ));            Console.ReadLine();        }          public   string  GetChineseSpell( string  strText)        {             int  len  =  strText.Length;             string  myStr  =   "" ;             for  ( int  i  =   0 ; i  <  len; i ++ )            {                myStr  +=  getSpell(strText.Substring(i,  1 ));            }             return  myStr;        }          private   string  getSpell( string  cnChar)        {             byte [] arrCN  =  Encoding.Default.GetBytes(cnChar);             if  (arrCN.Length  >   1 )            {                 int  area  =  ( short )arrCN[ 0 ];                 int  pos  =  ( short )arrCN[ 1 ];                 int  code  =  (area  <<   8 +  pos;                // {a..z}汉字拼音所在区位表的开始值,另撰文讲述GetBytes(char)所得值与汉字区位码的关系                  int [] areacode  =  {  45217 45253 45761 46318 46826 47010 47297 47614 48119 48119 49062 49324 49896 50371 50614 50622 50906 51387 51446 52218 52698 52698 52698 52980 53689 54481  };                 for  ( int  i  =   0 ; i  <   26 ; i ++ )                {                     int  max  =   55290 ;                     if  (i  !=   25 ) max  =  areacode[i  +   1 ];                     if  (areacode[i]  <=  code  &&  code  <  max)                    {                         return  Encoding.Default.GetString( new   byte [] { ( byte )( 65   +  i) });                    }                }                 return   " * " ;            }             else   return  cnChar;        }    }}

 

 

转载于:https://www.cnblogs.com/roogeer/archive/2009/12/03/1616523.html

相关资源:GBK汉字首字母 MYSQL
最新回复(0)