前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >汉字转成拼音首字母

汉字转成拼音首字母

作者头像
逍遥剑客
发布2018-05-21 14:53:28
2.5K0
发布2018-05-21 14:53:28
举报

在做公交查询系统时,要求用户输入起点和终点。可是如果用户输错了,自己要判断,很麻烦,因为我的算法全是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 ("");

}

把索引字母全部插入数据库后,我发现有些字这个函数没有处理。可能有些偏僻的字没有判断吧?不过就十几个,我手工加上了。。。。。

刚做完一次转乘,速度很快嘛,不用什么临时表了吧?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2006年12月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档