一种汉字转换为拼音及首字母的方法

文档序号:6401197阅读:210来源:国知局
专利名称:一种汉字转换为拼音及首字母的方法
技术领域
本发明涉及一种汉字转换为拼音及首字母的方法。
背景技术
随着车载电子技术的不断发展,车载娱乐系统也大量成为车辆中的必备产品。车载娱乐系统所提供给用户的功能也在不断的丰富,涵盖了导航功能,蓝牙功能,音视频文件的播放,收音功能等方方面面。很多应用都会提供给用户较多的列表信息,例如歌曲列表,导航功能中查询到的兴趣点的列表,蓝牙电话本联系人的列表等,当列表信息量巨大的时候,用户就会碰到一个问题:怎样在这些列表中快速查找到自己想要的信息呢。对于使用中文的用户来说,通常的做法是按照拼音的发音将整个列表做个排序,或者是通过输入首字母,快速的将结果做一个过滤。而这些快速查找一条信息的方法中最为核心的部分就是将汉字转化为拼音或者是首字母,然后再通过拼音和首字母来进行排序和过滤。在现有技术中,也不乏一些产品会有针对信息列表提供这样或者那样的查找和过滤功能,而这些方法也通常有一些缺陷。如通过采用数据库的方式来查询,需要建立一个汉字和对应拼音,首字母的数据库。在实际使用时,需要加载数据库引擎,每查一个字,都需要执行一次查询语句,会较为消耗系统资源,而每次查询一个字都需要做一次查询动作,如果大量的汉字需要转换,效率上也会有严重问题。又如通过文本方式,记录每个汉字及其对应的拼音信息,这样查一个字需要通过读取文件的方式把所有信息全部浏览一次,效率非常低下。而对于嵌入式的系统,在内存和CPU资源上都非常紧张,通常的方法在做这样一个功能时,都会遇到性能的瓶颈,使用户陷入等待,影响用户体验
发明内容
为了实现汉字与拼音及拼音首字母的快速转换,本发明提供一种汉字转换为拼音及首字母的设计方案。一种汉字转换为拼音及首字母的方法,包括以下步骤:
(I)将所有的拼音进行编号;(2)建立汉字拼音的基础对照表,将汉字对应拼音的编号以及拼音首字母按照汉字的Unicode值由小到大的顺序添加到对基础照表中;(3)读取该基础对照表,根据基础对照表将汉字转换为拼音及拼音首字母。所述步骤2的拼音的编号以及拼音的首字母以3个字节存储,具体为拼音的编号
存储于第一、二字节,拼音首字母存储于第三字节。所述读取对照表的方法为:建立一个对照数组,将对基础照表中各个汉字对应的拼音编号及拼音首字母顺序存入对照数组中。所述对照数组为一维数组。根据基础对照表将汉字转换为拼音及拼音首字母的方法为:
(I)读取将要待转换的汉字的Unicode值;(2)将步骤(I)的Unicode值减去0x4E00,得到一差值;(3)将步骤(2)所得到的差值乘以3所得到的值作为对照数组的下标;(4)根据下标查找对照数组所对应位置的连续三个字节所存储的拼音编号及拼音首字母。还包括多音字对照子表:二音字对照子表、三音字对照子表以及四音字对照子表。所述多音字对照子表的建立方法为:
Ca)将所有二音字顺序存储于二音字对照子表中,将每个二音字对应的2个读音拼音的编号结合对应的拼音首字母,以2个三字节的顺序存储;(b)将所有三音字顺序存储于三音字对照子表中,将每个三音字对应的3个读音拼音的编号结合对应的拼音首字母,以3个三字节的顺序存储;(C)将所有四音字顺序存储于四音字对照子表中,将每个四音字对应的4个读音拼音的编号结合对应的拼音首字母,以4个三字节的顺序存储。将多音汉字转换为拼音及拼音首字母的方法为:
(I)多音字在基础对照表中相应存储区域的第一、二个字节存储该多音字在相应对照表中的偏移位置,第三个字节存储其读音数n,n=2,3,4 ; (II)将基础对照表、二音字对照子表、三音字对照子表以及四音字对照子表依次顺序存储于对照数组中;(III)从对照数组中基础对照表区域读取到某个汉字的存储区域第三字节为读音数n,即判断其为η音字,并根据第一、二字节中的偏移位置,在η音字对应的区域查找该汉字对应的η组拼音编号及拼音首字母。综上所述,本发明具有以下有益效果:(1)使用对照表,对于汉字查找拼音功能,对系统资源的消耗非常小,有效的降低了对于系统资源的消耗;(2)在实施查找过程中,使用数组存储对照表,对于CPU的消耗只是数组的寻址,非常快速,为用户提供更好的使用感受;(3)建立多音字的对照子表,能够同时满足多音字的查询转换。


图1为本发明所述拼音的编号以及拼音的首字母的存储结构示意 图2为本发明所述二音字的拼音编号以及拼音的首字母的存储结构示意 图3为二音字的在对照数组基础对照表区域的存储结构示意图。
具体实施例方式为了让本领域的技术人员能够更好地了解本发明的技术方案,下面结合附图对本发明作进一步的阐述。本发明揭示了一种汉字转换为拼音及首字母的方法,包括以下步骤;
(I)将所有的拼音进行编号;所有汉字中(在GB13000中所包含的汉字为20902个)的拼音不超过512个,这样用2个字节的长度就可以表示一个拼音了。再加上首字母一个字节,这样每个汉字用三个字节表示拼音和首字母信息。(2)建立汉字拼音的基础对照表,将汉字对应拼音的编号以及拼音首字母按照汉字的Unicode值由小到大的顺序添加到对基础照表中。如图1所示,拼音的编号以及拼音的首字母以3个字节存储,具体为拼音的编号存储于第一、二字节,拼音首字母存储于第三字节。(3)读取该基础对照表,根据基础对照表将汉字转换为拼音及拼音首字母。建立一个对照数组(此处对照数组为一维数组),将对基础照表中各个汉字对应的拼音编号及拼音首字母顺序存入对照数组中。读取将要待转换的汉字的Unicode值并使用该Unicode值减去0x4E00 (0x4E00为Unicode值最小的汉字,即对照表中第一个汉字),得到一差值;将所得到的差值乘以3所得到的值作为对照数组的下标;根据下标查找对照数组所对应位置的连续三个字节所存储的拼音编号及拼音首字母。由于汉字中还有二音字,三音字及四音字等多音字的存在,其中有二音字2141个,三音字260个,四音字25个,故还设置有多音字对照子表:二音字对照子表、三音字对照子表以及四音字对照子表。多音字对照子表的建立方法为:(a)将所有二音字顺序存储于二音字对照子表中,将每个二音字对应的2个读音拼音的编号结合对应的拼音首字母,以2个三字节的顺序存储;(b)将所有三音字顺序存储于三音字对照子表中,将每个三音字对应的3个读音拼音的编号结合对应的拼音首字母,以3个三字节的顺序存储;(c)将所有四音字顺序存储于四音字对照子表中,将每个四音字对应的4个读音拼音的编号结合对应的拼音首字母,以4个三字节的顺序存储。其中,二音字的存储结构如图2所示,三音字及四音字的存储结构可由此类推。将多音汉字转换为拼音及拼音首字母的方法为:
(I)多音字在基础对照表中相应存储区域的第一、二个字节存储该多音字在相应对照表中的偏移位置,第三个字节存储其读音数n,n=2,3,4 ; (II)将基础对照表、二音字对照子表、三音字对照子表以及四音字对照子表依次顺序存储于对照数组中;(III)从对照数组中基础对照表区域读取到某个汉字的存储区域第三字节为读音数n,即判断其为η音字,并根据第一、二字节中的偏移位置,在η音字对应的区域查找该汉字对应的η组拼音编号及拼音首字母。设某字有两个读音,而两个读音的信息记录在对照数组二音字对照子表区域的第123个位置,则在对照数组的基础对照表区域,其对应的三字节记录的信息如图3所示,第三字节中的“2”表示该字有两个 音,“123”表示该字存储于对照数组的二音字区域的第123位。查找该字的拼音和首字母时,先按照单音字的方法读取到对应三个字节的信息,则分别为123与2,通过第三字节的“2”,知道其为二音字并在对照数组中查询二音字对照子表,并根据其偏移位置“123”,读取对照数组下标为[20902*3 + 123 * (2*3)]处的连续6个字节数据,这6个数据就记录了该二音字的两个读音的信息。三音字与四音字的查询方法可依次类推。本实施例只是本发明的较优实施方式,未进行详细描述的部分均采用公知的成熟技术。需要说明的是,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种汉字转换为拼音及首字母的方法,其特征在于,包括以下步骤: (1)将所有的拼音进行编号; (2)建立汉字拼音的基础对照表,将汉字对应拼音的编号以及拼音首字母按照汉字的Unicode值由小到大的顺序添加到对基础照表中; (3)读取该基础对照表,根据基础对照表将汉字转换为拼音及拼音首字母。
2.根据权利要求1所述的一种汉字转换为拼音及首字母的方法,其特征在于,步骤2所述的拼音的编号以及拼音的首字母以3个字节存储,具体为拼音的编号存储于第一、二字节,拼音首字母存储于第三字节。
3.根据权利要求1所述的一种汉字转换为拼音及首字母的方法,其特征在于,所述读取对照表的方法为:建立一个对照数组,将对基础照表中各个汉字对应的拼音编号及拼音首字母顺序存入对照数组中。
4.根据权利要求3所述的一种汉字转换为拼音及首字母的方法,其特征在于,所述对照数组为一维数组。
5.根据权利要求4所述的一种汉字转换为拼音及首字母的方法,其特征在于,根据基础对照表将汉字转换为拼音及拼音首字母的方法为: (O读取将要待转换的汉字的Unicode值; (2)将步骤(I)的Unicode值减去0x4E00,得到一差值; (3)将步骤(2)所得到的差值乘以3所得到的值作为对照数组的下标;` (4)根据下标查找对照数组所对应位置的连续三个字节所存储的拼音编号及拼音首字母。
6.根据权利要求1所述的一种汉字转换为拼音及首字母的方法,其特征在于,还包括多音字对照子表:二音字对照子表、三音字对照子表以及四音字对照子表。
7.根据权利要求6所述的一种汉字转换为拼音及首字母的方法,其特征在于,所述多音字对照子表的建立方法为: Ca)将所有二音字顺序存储于二音字对照子表中,将每个二音字对应的2个读音拼音的编号结合对应的拼音首字母,以2个三字节的顺序存储; (b)将所有三音字顺序存储于三音字对照子表中,将每个三音字对应的3个读音拼音的编号结合对应的拼音首字母,以3个三字节的顺序存储; (c)将所有四音字顺序存储于四音字对照子表中,将每个四音字对应的4个读音拼音的编号结合对应的拼音首字母,以4个三字节的顺序存储。
8.根据权利要求7所述的一种汉字转换为拼音及首字母的方法,其特征在于,将多音汉字转换为拼音及拼音首字母的方法为: (I)多音字在基础对照表中相应存储区域的第一、二个字节存储该多音字在相应对照表中的偏移位置,第三个字节存储其读音数n,n=2, 3,4 ; (II)将基础对照表、二音字对照子表、三音字对照子表以及四音字对照子表依次顺序存储于对照数组中; (III)从对照数组中基础对照表区域读取到某个汉字的存储区域第三字节为读音数n,即判断其为η音字,并根据第一、二字节中的偏移位置,在η音字对应的区域查找该汉字对应的η组拼音编号及拼音首字母。
全文摘要
本发明公开了一种汉字转换为拼音及首字母的方法,包括以下步骤;(1)将所有的拼音进行编号;(2)建立汉字拼音的基础对照表,将汉字对应拼音的编号以及拼音首字母按照汉字的Unicode值由小到大的顺序添加到对基础照表中;(3)读取该基础对照表,根据基础对照表将汉字转换为拼音及拼音首字母。本发明使用对照表,对于汉字查找拼音功能,对系统资源的消耗非常小,有效的降低了对于系统资源的消耗;在实施查找过程中,使用数组存储对照表,对于CPU的消耗只是数组的寻址,非常快速,为用户提供更好的使用感受;建立多音字的对照子表,能够同时满足多音字的查询转换。
文档编号G06F17/30GK103235789SQ201310106588
公开日2013年8月7日 申请日期2013年3月29日 优先权日2013年3月29日
发明者唐侨 申请人:惠州市德赛西威汽车电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1