汉字转成拼音首字母

来源:互联网 发布:淘宝是c2c还是b2c 编辑:程序博客网 时间:2024/05/15 23:45

在做公交查询系统时,要求用户输入起点和终点。可是如果用户输错了,自己要判断,很麻烦,因为我的算法全是SQL。于是就想了一种折衷的方案:让用户从DropDownList里选。这样既方便了用户,也方便了自己。

可是,如果全部站点放入一个DropDownList的话,太多了(我这个济南的有一千多个啊),所以就先选择汉字的拼音首字母,再选择站点,实验证明很方便,速度很快!

这里用到了一个汉字转拼音的函数:

        static string Extract_HZ(string HZ)
        
{
            
byte[] ZW = new byte[2];
            
long HZ_INT;
            ZW 
= System.Text.Encoding.Default.GetBytes(HZ);//   get   the     array   of   byte   from   the   single   char     
            int i1 = (short)(ZW[0]);
            
int i2 = (short)(ZW[1]);
            HZ_INT 
= i1 * 256 + i2;   //     expresstion   
            
//   HZ_INT match     the   constant   
            if ((HZ_INT >= 45217&& (HZ_INT <= 45252))
            
{
                
return "A";
            }

            
if ((HZ_INT >= 45253&& (HZ_INT <= 45760))
            
{
                
return "B";
            }

            
if ((HZ_INT >= 45761&& (HZ_INT <= 46317))
            
{
                
return "C";

            }

            
if ((HZ_INT >= 46318&& (HZ_INT <= 46825))
            
{
                
return "D";
            }

            
if ((HZ_INT >= 46826&& (HZ_INT <= 47009))
            
{
                
return "E";
            }

            
if ((HZ_INT >= 47010&& (HZ_INT <= 47296))
            
{
                
return "F";
            }

            
if ((HZ_INT >= 47297&& (HZ_INT <= 47613))
            
{
                
return "G";
            }

            
//**************************   
            if ((HZ_INT >= 47614&& (HZ_INT <= 48118))
            
{
                
//MessageBox.Show("H");   
                return "H";
            }


            
if ((HZ_INT >= 48119&& (HZ_INT <= 49061))
            
{
                
return "J";
            }

            
if ((HZ_INT >= 49062&& (HZ_INT <= 49323))
            
{
                
return "K";
            }

            
if ((HZ_INT >= 49324&& (HZ_INT <= 49895))
            
{
                
return "L";
            }

            
if ((HZ_INT >= 49896&& (HZ_INT <= 50370))
            
{
                
return "M";
            }


            
if ((HZ_INT >= 50371&& (HZ_INT <= 50613))
            
{
                
return "N";

            }

            
if ((HZ_INT >= 50614&& (HZ_INT <= 50621))
            
{
                
return "O";
            }

            
if ((HZ_INT >= 50622&& (HZ_INT <= 50905))
            
{
                
return "P";

            }

            
if ((HZ_INT >= 50906&& (HZ_INT <= 51386))
            
{
                
return "Q";

            }

            
//*********************   
            if ((HZ_INT >= 51387&& (HZ_INT <= 51445))
            
{
                
return "R";
            }

            
if ((HZ_INT >= 51446&& (HZ_INT <= 52217))
            
{
                
return "S";
            }

            
if ((HZ_INT >= 52218&& (HZ_INT <= 52697))
            
{
                
return "T";
            }

            
if ((HZ_INT >= 52698&& (HZ_INT <= 52979))
            
{
                
return "W";
            }

            
if ((HZ_INT >= 52980&& (HZ_INT <= 53640))
            
{
                
return "X";
            }

            
if ((HZ_INT >= 53689&& (HZ_INT <= 54480))
            
{
                
return "Y";
            }

            
if ((HZ_INT >= 54481&& (HZ_INT <= 55289))
            
{
                
return "Z";
            }

            
return ("");
        }

把索引字母全部插入数据库后,我发现有些字这个函数没有处理。可能有些偏僻的字没有判断吧?不过就十几个,我手工加上了。。。。。
刚做完一次转乘,速度很快嘛,不用什么临时表了吧? 

原创粉丝点击