C#取得汉字的拼音的首字母

时间:2022-02-01 08:00:55
static   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;
}

static   public   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;
        
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;
}