汉字转成拼音首字母

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

}

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏mukekeheart的iOS之旅

MySQL学习笔记(二)

二、SQL基本知识 SQL 是一种典型的非过程化程序设计语言,这种语言的特点是:只指定哪些数据被操纵,至于对这些数据要执行哪些操作,以及这些操作是如何执行的,则...

27810
来自专栏学习有记

T-SQL进阶:超越基础 Level 2:编写子查询

1091
来自专栏Albert陈凯

2018-07-20 oracle优化:避免全表扫描

例如:在City-State-Zip列创建了三列复合索引,那么仅对State列限定条件不能使用这个索引,因为State不是索引的主列。

2524
来自专栏程序员宝库

再见乱码:5 分钟读懂 MySQL 字符集设置

作者: 程序猿小卡_casper 原文:https://segmentfault.com/a/1190000012775484 一、内容概述 在MySQL的使...

49811
来自专栏抠抠空间

MySQL之表的约束

一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: PRIMARY KEY (PK) 标识该字段为该表的...

2926
来自专栏小灰灰

mysql之基本语法

本篇将主要集中在mysql的使用上,包括如何创建标,如何进行insert,update,select,delete,以及一些常见的sql中关键字的使用姿势

63122
来自专栏大数据

mysql联合索引详解

上一篇文章:mysql数据库索引优化 比较简单的是单列索引(b+tree)。遇到多条件查询时,不可避免会使用到多列索引。联合索引又叫复合索引。 b+tree结构...

1.6K9
来自专栏Pythonista

Mysql基础

数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据...

2402
来自专栏友弟技术工作室

工作中数据库优化技巧

内容整理于网络 一、EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。 EXPLAIN 输出格式 EXPLAIN 命令的输出内容...

34011
来自专栏社区的朋友们

MySQL 索引与优化

索引是存储引擎内部的一种数据结构,它能让数据库快速地找到需要的值,而不是野蛮地进行自上而下的全表遍历。索引对良好的性能非常关键,尤其是当表中的数据量越来越大时,...

1K1

扫码关注云+社区

领取腾讯云代金券