一种电话本排序方法和手机设备的制作方法

文档序号:7943847阅读:278来源:国知局

专利名称::一种电话本排序方法和手机设备的制作方法
技术领域
:本发明涉及手机
技术领域
,尤其涉及一种电话本排序方法和手机设备。
背景技术
:手机等移动设备中的电话本主要用于存储联系人的电话号码等联系信息。为了查找方便,电话本通常按照一定的顺序排序。有的电话本还支持搜索功能,通过输入某个关键字或字母可以缩小查找范围,快速找到所需要的联系人的联系信息。现有的中文手机中的电话本,通常采用汉字的全拼进行排序,具体为获取电话本中每个中文姓名中每个字符的中文全拼;将获取的中文全拼字符串中的每个字母生成对应的美国信息交换标准码(ASCII,AmericanStandardCodeforInformationInterchange)数据,将每个姓名所对应的ASCII数据按照从高位到低位的顺序逐字节进行比较,按照大小顺序排列。其中,ASCII是标准的单字节字符编码方案,用于基于文本的数据。ASCII起始于50年代后期,在1967年定案。ASCII使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCII使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。目前许多基于x86的系统都支持使用扩展(或"高")ASCII。扩展ASCII允许将每个字符的第8位用于确定附加的128个特殊符号字符、外来语字母和图形符号。本发明的发明人在对现有技术的研究和实践中发现,采用汉字全拼进行排序可能造成排序混乱。例如,词组"李楠li,nan"和"临安lin,an"的中文全拼字符串都是"linan",因此对应的ASCII数据相同,导致二者无法区分。对同音字"张"和"章"的中文全拼字符串都是"zhang",二者对应的ASCII数据也相同,因此会出现"张XX、章XX、张YY"这样的排序混乱,造成查找不方便,效率较低。
发明内容本发明实施例所要解决的技术问题是提供一种电话本排序方法和手机设备,能够使用户方便、快捷地查找到所需的联系人信息。为解决上述技术问题,本发明是通过以下技术方案实现的本发明实施例提供了一种电话本排序方法,该方法包括当根据姓名中字符的统一码判断出所述字符是中文时,将所述字符生成包含两个区域的数据,其中第一区域包括至少6个字节,用于表示所述字符中文全拼的英文字母的美国信息交换标准码ASCII;第二区域包括至少2个字节,用于表示所述字符的统一码;第一区域与第二区域按照从高位到低位的顺序排列;将电话本中每个姓名所生成的数据进行比较排序。本发明实施例还提供了对应的手机设备,该设备包括判断单元、第一数据生成单元和第一排序单元和第二排序单元,其中判断单元,用于才艮据姓名中字符的统一码判断出所述字符的类型,并在所述字符是中文时,触发第一数据生成单元;第一数据生成单元,用于将中文字符生成包含两个区域的数据,其中第一区域包括至少6个字节,用于表示所述字符中文全拼的英文字母的美国信息交换标准码ASCII;第二区域包括至少2个字节,用于表示所述字符的统一码;第一区域与第二区域按照从高位到低位的顺序排列;第一排序单元,用于将每个姓名中每个字符所生成的数据按照字符顺序依次排列;第二排序单元,用于将第一排序单元排序后的各个姓名数据进行比较排序。从以上技术方案可以看出,根据电话本中姓名中字符的统一码判断出所述字符是中文时,将所述字符生成包含两个区域的数据,且所述数据从高位到低位依次有两个区域第一区域至少6个字节,用于表示所述字符中文全拼的ASCII;第二区域2个字节,用于表示所述字符的统一码;第一区域与第二区域按照从高位到低位的顺序排列;将每个姓名中每个字符所生成的数据按照字符顺序依次排序,并将电话本中姓名所生成的数据进行比较排序。由于一个字符的中文全拼最长有6个字符,因此设置第一区域有至少6个字节,可以区分姓名中词组的全拼相同的情况;而每个字符有唯一的统一码编码,因此,在第一区域相同的情况下,通过第二区域可以区分中文字符中的同音字。综上可知,所述排序方法及相应的手机设备可以很好地对中文电话本进行排序,避免相同拼音的词组以及同音字导致的排序混乱问题,使得用户能够根据姓名方便、快捷地找到所需的联系人信息。图l是本发明实施例中电话本排序方法一流程图;图2是本发明实施例中电话本排序方法二流程图;图3是本发明实施例中手机设备一结构示意图;图4是本发明实施例中手机设备二结构示意图。具体实施例方式本发明实施例提供了一种电话本排序方法及手机设备,能够使用户方便、快捷地查找到所需联系人的信息。为使本发明实施例的目的、技术方案及优点更加清楚明了,以下参照附图,对本发明实施例进行详细说明。参照图l,为本发明实施例一电话本排序方法流程图,具体步骤如下5101、当根据姓名中字符的统一码判断出所述字符是中文时,将所述字符生成包含两个区域的数据,其中第一区域包括至少6个字节,用于表示所述字符中文全拼的英文字母的ASCII;第二区域包括至少2个字节,用于表示所述字符的统一码;第一区域与第二区域按照从高位到低位的顺序排列;统一码,又称万国码、单一码,是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。统一码是基于通用字符集(UCS,UniversalCharacterSet)的标准来发展的,目前用于实用的统一码版本对应于UCS第2版(UCS-2),使用16位(bit)的编码空间,也就是每个字符占用2个字节。汉字的统一码为两个字节共16bit数据,用16进制可以表示为0xXYWU,其中,其中0x表示XYWU为16进制数。当获取到的字符的统一码用16进制数表示位于区间时,所述字符为中文字符。5102、将姓名中每个字符所生成的数据按照字符顺序依次排列;6S103、将电话本中每个姓名所生成的数据进行比较排序。将电话本中每个姓名所生成的数据按照从高位到低位的顺序逐字节进行比较,按照大小顺序进行排序。例如,采用上述排序方法,对下列姓名进行排序后的顺序如表l:<table>tableseeoriginaldocumentpage7</column></row><table>表l如果采用全拼的排序方案,上述姓名的排序列表如表2:<table>tableseeoriginaldocumentpage7</column></row><table>表2比较表1和表2可以看出,采用全拼的排序方法,由于"李楠"与"临安"的全拼均为"linan",因此,"李楠"排在了"临"与"临安"的中间;也无法区分同音字"张,,与"章",因此,"张二,,排在了"章,,与"章三"之间,而本发明上述实施例的排序方法则可以解决上述问题,可以看出,由于每个中文字符其全拼最多不超过6个英文字符,即最多占用6个字节,如汉字"庄"的全拼"zhuang,,,因此在汉字转换过程中,其第一区域最少设6个字节,而对于不足的部分,则可以用约定的数据填充,例如,表l中采用空格对应的ASCII"0x20"补齐。可以理解的是,也可以采用其他的数据填充。通过在中文字符转换过程中扩展第一区域,可以区分全拼相同的词组;而通过第二区域,则可以区分全拼相同的同音字。按照电话本中姓名转换后的数据大小,从高位到低位逐字节进行比较,并按照大小顺序进行排序。可以看出,按照上述方法排序,可以避免相同全拼的词组以及同音字导致的排序混乱问题,更加符合中文用户的使用习惯,使得用户可以方便、快捷地找到所需联系人的信息。例如,将第一区域不足部分用ASCII的数据0x20或者设定的其他固定数据进行填充。不再——举例说明。参照图2,为本发明实施例二电话本排序方法流程图,与实施例一的不同之处在于,本实施例不仅能区分出中文姓名中全拼相同的词组和同音字,还能够区分中英文,将中英文姓名分开,具体步骤如下5201、获取电话本中姓名的每个字符的统一码;5202、判断获取到的字符的统一码的范围,并当获取到的字符的统一码小于OxFF时,执行S203;当获取到的字符的统一码位于0x4E00至0x9FA5之间时,执行S204;当获取到的字符为非中文的双字节字符时,执行S205;目前用于实用的统一码版本对应于UCS第2版(UCS-2),使用16位(bit)的编码空间,也就是每个字符占用2个字节。其中,对于英文字符和一些控制字符,其有效数据小于OxFF,与字符的ASCII对应。当统一码位于区间时,说明字符为中文字符。当获取到的字符的统一码在其他范围时,为其他语言种类的双字节字符。5203、将所述字符生成所述字符的ASCIllt据;例如,字符"T,,的统一码数据为0x0054,则对应的ASCII数据为0x54,即保留其低位字节的数据。5204、将所述字符生成9个字节的数据,所述数据包括三个区域,其中第三区域包括l个字节,用于区分中英文;第一区域包括6个字节,用于表示所述字符中文全拼的统一码;第二区域包括2个字节,用于表示所述字符的统一码;第三区域、第一区域与第二区域按照从高位到低位的顺序排列;5205、保持所述字符的统一码数据不变;5206、将每个姓名中每个字符所生成的数据按照字符顺序依次排列;5207、将电话本中按照字符顺序排序后的每个姓名所生成的数据按照从高位到低位的顺序逐字节进行比较,按照从小到大的顺序进行排序。可以理解的是,也可以按照从大到小的顺序进行排序。例如,对于"Tom",由于其为英文字符串,每个字符的统一码都小于OxFF,按照S203执行,只保留一个字节的有效数据,使用16进制表示依次为0x54、0x6F、0x6D;对于汉字"李",由于其统一码为0x674E,位于,」換照S204执行,设第一区域的l个字节为0x7F,第二区域为汉字"李"的中文全拼"li"对应的英文字母的ASCII:0x6C69,为2个字节,其剩余的4个字节可以用预先设定的固定数据补齐。由于0x20在ASCII中表示空格,为方便起见,可以用0x20将不足的部分补齐,汉字"李"的统一码为0x674E,则汉字"李,,所生成的9个字节的数据用16进制表示具体为7F6C6920202020674E。对于非中文的双字节字符,则保持其统一码li据不变。采用上述排序方法,对下列姓名进行排序后的顺序如表3:序号姓名排序数据(使用16进制数表示)1Tom546F6D2李楠7F6C6920202020674E7F6E616E20202069603临7F6C696E2020204E344临安7F6C696E2020204E347F616E202020205B89张二7F7A68616E67205F207F6572202020204E8C6章7F7A68616E67207AE07章三7F7A68616E67207AEO7F73616E2020204E09表3而如果采用全拼的排序方案,上述姓名的排序顺序如表4:序号姓名排序数据(使用英文字母表示)1临lin2李楠linan3临安linan4Tomtorn章zhang6张二zhanger7章三Zhangsan表4比较表3和表4可以看出,采用全拼的排序方法无法区分出词组"李楠"与"临安",因此,"李楠"排在了"临"与"临安"的中间;且也无法区分中英文,因此"Tom"排在了中文姓名的中间;也无法区分同音字"张"与"章",因此,"张二"排在了"章"与"章三,,之间,而本发明上述实施例的排序方法则可以解决上述问题,可以看出,由于所有英文字符的统一码的都小于0x7F,可以用单字节表示,因此,将0x7F作为所有中文字符数据的第三区域排在高位,可以将所有的英文字符串排在中文字符串的前面;由于每个中文字符其全拼最多不超过6个英文字母,即最多占用6个字节,如汉字"庄"的全拼"zhuang",因此在汉字转换过程中,其第一区域最少设6个字节,而对于不足的部分,则可以用约定的数据填充,例如,可以用空格对应的统一码"0x20"补齐。可以理解的是,也可以釆用其他的固定数据填充。通过在中文字符转换过程中扩展第一区域,可以区分全拼相同的词组;而通过第二区域,则可以区分全拼相同的同音字。将电话本中姓名转换后的数据按照从高位到低位的顺序逐字节进行比较,并按照大小顺序进行排序。可以看出,按照上述方法排序,可以避免中英文混排、相同全拼的词组以及同音字导致的排序混乱问题,更加符合中文用户的使用习惯,使得用户可以方便、快捷地找到所需联系人的信息。可以理解的是,第三区域也可以填充其他的数据来区分中英文,例如,填充0x20,由于英文字符的统一码大于等于0x41,因此这样可以将所有的中文姓名的联系人排在英文姓名的联系人的前面。当然,也可以填充其他的统一码小于0x41的数据来将所有的中文姓名排在英文姓名的前面。在具体实施一区域填充为7个或7个以上的字节,不足部分用0x20补齐。不再——举例说明。在具体应用中,对于小于0xFF的字符,也可以保持其统一码数据不变。相应地,为区分中英文,转换后的数据设第四区域,所述第四区域位于第一区域之前,第四区域包括2个字节的固定数据,例如,如果将转换后的数据按照从高位到低位的顺序逐字节进行比较,并按照从小到大的顺序进行排列,则设置为0x007F可以将所有的英文姓名排在中文姓名的前面;而将第四区域设置为0x0020可以将所有的中文姓名排在英文姓名的前面;也可以将第四区域的高位字节设置为非O数值,以将所有的英文姓名排在中文姓名的前面,例如,设第四区域设置为OxXYWU,则只要保证X、Y不全为O,可以将所有的英文姓名排在中文姓名的前面。同时,第一区域至少包括至少6个字节的数据,用于表示汉字对应的中文全拼,不足部分可以用设定的固定数据补齐,例如0x20。第二区域包括2个字节的数据,用于表示所述字符的统一码。上述方法同样可以对电话本中的姓名按照转换后的数据,按照从高位到低位的顺序逐字节进行比较,以按照数据大小进行排序,进而可以形成电话本列表,使得手机用户可以方便、快捷地查找到所需要的联系人信息。可以理解的是,本发明实施例所介绍的排序方法也适用于一个姓名中同时包含中英文的情况,例如釆用本发明所介绍的方法排序,对于Tom,Tom章,Tom张,Tom李,由于起始字符为英文,因此,应排在所有纯中文姓名的前面,且按照从小到大的顺序排列依次为Tom、Tom李,Tom张、Tom章。同理,对于Tom,张Tom、李Tom,张Lili、章Lili,按照从高位到低位的顺序逐字节进行比较,并按照从小到大的顺序排序依次为Tom、李Tom、张Lili、张Tom、章Lili。以上对电话本排序方法通过具体流程进行了详细说明,下面对上述方法所对应的手机设备进行详细介绍参照图3,为本发明实施例中手机设备一结构示意图,该手机设备包括判断单元301、第一数据生成单元302、第一排序单元303和第二排序单元304,其中判断单元301,用于才艮据姓名中字符的统一码判断出所述字符的类型,并在所述字符是中文时,触发第一数据生成单元;第一数据生成单元302,用于将中文字符生成包含两个区域的数据,其中ii第一区域包括至少6个字节,用于表示所述字符中文全拼的英文字母的ASCII;第二区域包括2个字节,用于表示所述字符的统一码;第一区域与第二区域按照从高位到低位的顺序排列;第一排序单元303,用于将姓名中每个字符所生成的数据按照字符顺序依次排列;第二排序单元304,用于将第一排序单元303排序后的各个姓名数据进行比较排序。第二排序单元可以将第一排序单元排序后的各个姓名数据按照从高位到低位的顺序逐字节进行比较,按照大小顺序进行排序。其中,当第一数据生成单元302在获取到的字符的统一码位于区间时,对应的字符为中文字符。由于一个汉字的中文全拼最多占用6个字节,因此可以设置第一区域的数据至少为6个字节,第一数据生成单元302所生成的数据具体可以为8个字节,所述第一区域为6个字节,所述第二区域为2个字节。如果第一区域用6个字节填充,不足6个字节的可以在末尾用单字节的数据0x20或者其他固定数据填充。可见,所述手机设备用于将中文字符转换为至少8个字节的数据,由于一个汉字的中文全拼最长有6个字符,因此设置第一区域有至少6个字节,可以区分姓名中词组的全拼相同的情况;而每个字符有唯一的统一码,因此,在第一区域相同的情况下,通过第二区域可以区分中文字符中的同音字。综上全拼相同的词组以及同音字导致的排序混乱问题,使得用户能够根据姓名方便、快捷地找到所需的联系人信息。在具体实施例中,还可以对上述手机设备作进一步优化,下面举另一个实施例进4于-沈明。参照图4,为本发明实施例中手机设备二结构示意图,为区分中英文,在上述手机设备基础上,还包括第二数据生成单元和第三数据生成单元,所述判断单元301还用于在姓名中字符的统一码的有效数据为单字节时,触发第二数据生成单元401;还用于在姓名中的字符为非中文的双字节字符时,触发第三数据生成单元402;第二数据生成单元401,用于将有效数据为单字节的字符生成所述字符的ASCII数据;第三数据生成单元402,用于保持非中文的双字节字符的统一码不变;第一数据生成单元302所生成的数据还包括第三区域,所述第三区域包含至少一个字节的固定数据,位于第一区域之前,用于区分中英文;可以理解的是,在具体实施中,所述第一数据生成单元302、第二数据生成单元401及第三数据生成单元402可以集成在一起,参照图4,数据生成单元400,用于根据判断单元301根据姓名中字符的统一码判断的字符的类型,生成姓名数据。为节省存储空间,所述第一数据生成单元302将中文字符所生成的数据具体可以为9个字节,其中,所述第三区域为l个字节的数据,用于区分中英文;所述第一区域为6个字节,用于表示所述字符对应的英文字母的ASCII。所述第三区域的l个字节用16进制表示具体为0x7F,按照从小到大的顺序排列,可以将所有的英文姓名排在中文姓名的前面。第三区域也可以设置为0x20,由于所有英文字母的ASCII大于0x40,因此,按照从小到大的顺序排列,可以将所有的中文姓名排在英文姓名的前面,使得手机用户可以方便、快捷地查找到所需要的联系人信息。在具体实施中,所述第一数据生成单元302还可用于在第一区域的数据不足6个字节时在末尾用Ox20等固定数据补《在排序过程中,为区分中英文,可以对所述手机设备进行不同的设置。例如,所述数第一据生成单元302还可用于保持所获取到的非中文字符的统一码不变,所述中文字符所生成的数据至少为10个字节,所述数据还包括第四区域,为2个字节的固定数据,位于第一区域之前,用于区分中英文。例如,第四区域具体可以设置为0x007F、0x0020或者0xXYWU,其中,X、Y不全为O。他双字节字符区分开来,且所生成的9(或IO)个字节婆:据的第三(或四)区域可以将中文字符与英文字符区分开来;且由于一个字符的中文全拼最长有6个字符,因此设置第一区域有至少6个字节,可以区分姓名中词组的全拼相同的情况;而每个字符有唯一的统一码,因此,在第三(或四)区域和第一区域相同的情况下,通过第二区域可以区分中文字符中的同音字。综上可知,混同、相同拼音的词组以及同音字导致的排序混乱问题,使得用户能够根据姓名方便、快捷地找到所需的联系人信息。绍以上实同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求1、一种电话本排序方法,其特征在于,包括当根据姓名中字符的统一码判断出所述字符是中文时,将所述字符生成包含两个区域的数据,其中第一区域包括至少6个字节,用于表示所述字符中文全拼的英文字母的美国信息交换标准码ASCII;第二区域包括至少2个字节,用于表示所述字符的统一码;第一区域与第二区域按照从高位到低位的顺序排列;将每个姓名中每个字符所生成的数据按照字符顺序依次排列;将电话本中每个姓名所生成的数据进行比较排序。2、如权利要求l所述的电话本排序方法,其特征在于,进一步包括当姓名中字符的统一码的有效数据为单字节时,将所述字符生成所述字符的ASCII数据;当获取到的字符为非中文的双字节字符时,保持所述字符的统一码不变;所述中文字符生成所生成的数据还包括第三区域,第三区域包含至少一个字节的固定lt据,位于第一区域之前,用于区分中英文。3、如权利要求2所述的电话本排序方法,其特征在于,所述第三区域为l个字节的固定数据,用16进制表示具体为0x7F或0x20。4、如权利要求2或3所述的电话本排序方法,其特征在于,当所述第一区域为6个字节的数据时,所述第一区域不足6个字节的在末尾用固定数据补齐。5、一种手机设备,其特征在于,包括判断单元、第一数据生成单元和第一排序单元和第二排序单元,其中判断单元,用于根据姓名中字符的统一码判断出所述字符的类型,并在所述字符是中文时,触发第一数据生成单元;第一数据生成单元,用于将中文字符生成包含两个区域的数据,其中第一区域包括至少6个字节,用于表示所述字符中文全拼的英文字母的美国信息交换标准码ASCII;第二区域包括至少2个字节,用于表示所述字符的统一码;第一区域与第二区域按照从高位到低位的顺序排列;第一排序单元,用于将每个姓名中每个字符所生成的数据按照字符顺序依次排列;第二排序单元,用于将第一排序单元排序后的各个姓名数据进行比较排序。6、如权利要求5所述的手机设备,其特征在于,还包括第二数据生成单元和第三数据生成单元,所述判断单元还用于在姓名中字符的统一码的有效数据为单字节时,触发第二数据生成单元;还用于在姓名中的字符为非中文的双字节字符时,触发第三数据生成单元;第二数据生成单元,用于将有效数据为单字节的字符生成所述字符的ASCII数据;第三数据生成单元,用于保持非中文的双字节字符的统一码不变;所述第一数据生成单元所生成的数据还包括第三区域,所述第三区域包含至少一个字节的固定数据,位于第一区域之前,用于区分中英文。7、如权利要求6所述的手机设备,其特征在于,所述第三区域为l个字节的固定数据,用16进制表示具体为0x7F或0x20。8、如权利要求6或7所述的手机设备,其特征在于,所述第一区域为6个字节的数据时,所述数据生成单元还用于在第一区域的数据不足6个字节时在末尾用固定数据补齐。全文摘要本发明公开了一种电话本排序方法和手机设备,所述电话本排序方法包括当根据姓名中字符的统一码判断出所述字符是中文时,将所述字符生成包含两个区域的数据,其中第一区域包括至少6个字节,用于表示所述字符中文全拼的英文字母的美国信息交换标准码ASCII;第二区域包括至少2个字节,用于表示所述字符的统一码;第一区域与第二区域按照从高位到低位的顺序排列;将每个姓名中每个字符所生成的数据按照字符顺序依次排列;将电话本中每个姓名所生成的数据进行比较排序。所述排序方法及手机设备可以很好地对中文电话本进行排序,避免相同拼音的词组以及同音字导致的排序混乱问题,使得用户能够根据姓名方便、快捷地找到所需的联系人信息。文档编号H04M1/275GK101459712SQ20091000150公开日2009年6月17日申请日期2009年1月5日优先权日2009年1月5日发明者震王申请人:深圳华为通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1