名称列表展示、处理方法及客户端、服务器
技术领域
本申请涉及数据处理领域,特别涉及一种名称列表展示、处理方法及客户端、服务器。
背景技术
互联网改变了人们的日常生活,使得人们可以在不见面的条件下进行沟通交流。这种沟通交流并不仅仅限于语言文字之间的对话,已经延伸到商业贸易,比如网络购物,金融管理等。
通常软件内会设置有联系人列表,以向用户提供联系人的信息。现有的软件内,会对联系人列表的数据进行分类排序,以使用户能够快速查询到目标联系人。具体的,例如,在软件中集成有pinyin4j字典,其中包括了每个汉字对应的拼音,使得输入的汉字可以通过查找字典查到对应的拼音。在生成联系人列表时,可以通过拼音的首字母进行分类排序。
随着全球经济一体化的发展,同一个软件可能会在多个国家进行推广使用。例如:手机淘宝、支付宝等。在一些情况下,一些软件中会存在联系人列表,以供用户查阅联系人,从而便于用户之间进行交互。例如,进行即时通讯,或者进行金融转账等等。这些软件在多个国家推广时,会面临不同国家的用户可能使用不同语言的情况,再者同一个国家内的用户,其存储的联系人名称也可能包括不同的语言。例如,一个中国用户有日本朋友、美国朋友、朝鲜朋友等等。在这样的情况下,涉及在生成联系人列表时,需要针对不用语言的联系人名称进行列表排序。如果针对每种语言都设置一个文字与发音的字典,制作字典以及后续更新针对字典进行更新,需要进行大量的人力劳动,费时费力。
发明内容
本申请实施方式提供一种能够有效适应多种语言生成名称列表的名称列表展示、处理方法及客户端、服务器。
为解决上述技术问题,本申请提供一种名称列表展示方法,其包括:获取名称数据;其中,所述名称数据包括有至少一个名称字符串;获取所述名称字符串中第一预定字符的统一码;确定所述第一预定字符的统一码对应的预定编码段,将所述名称字符串划分
至所述预定编码段对应的预定类别;其中,所述预定编码段的数量为至少一个,每个所述预定编码段对应一个预定类别;在显示界面中对应展示所述预定类别的类别标识,和与所述预定类别对应的名称字符串。
本申请实施方式还提供一种客户端,其包括:数据获取模块,用于获取名称数据;其中,所述名称数据包括有至少一个名称字符串;统一码获取模块,用于获取所述名称字符串中第一预定字符的统一码;预定类别划分模块,用于确定所述第一预定字符的统一码对应的预定编码段,将所述名称字符串划分至所述预定编码段对应的预定类别;其中,所述预定编码段的数量为至少一个,每个所述预定编码段对应一个预定类别;显示模块,用于在显示界面中对应展示所述预定类别的类别标识,和与所述预定类别对应的名称字符串。
本申请实施方式还提供一种客户端,其包括:处理器、显示器,所述处理器用于获取名称数据;其中,所述名称数据包括有至少一个名称字符串;并用于获取所述名称字符串中第一预定字符的统一码;确定所述第一预定字符的统一码对应的预定编码段,将所述名称字符串划分至所述预定编码段对应的预定类别;其中,所述预定编码段的数量为至少一个,每个所述预定编码段对应一个预定类别;控制所述显示器在显示界面中对应展示所述预定类别的类别标识,和与所述预定类别对应的名称字符串。
本申请实施方式还提供一种名称列表处理方法,其包括:获取名称数据;其中,所述名称数据包括有至少一个名称字符串;获取所述名称字符串中第一预定字符的统一码;确定所述第一预定字符的统一码对应的预定编码段,将所述名称字符串划分至所述预定编码段对应的预定类别;其中,所述预定编码段的数量为至少一个,每个所述预定编码段对应一个预定类别。
本申请实施方式还提供一种服务器,其包括:数据获取模块,用于获取名称数据;其中,所述名称数据包括有至少一个名称字符串;统一码获取模块,用于获取所述名称字符串中第一预定字符的统一码;预定类别划分模块,用于确定所述第一预定字符的统一码对应的预定编码段,将所述名称字符串划分至所述预定编码段对应的预定类别;其中,所述预定编码段的数量为至少一个,每个所述预定编码段对应一个预定类别。
本申请实施方式还提供一种服务器,其包括:处理器,所述处理器用于获取名称数据;其中,所述名称数据包括有至少一个名称字符串;并用于获取所述名称字符串中第一预定字符的统一码;确定所述第一预定字符的统一码对应的预定编码段,将所述名称字符串划分至所述预定编码段对应的预定类别;其中,所述预定编码段的数量为至少一个,每个所述预定编码段对应一个预定类别。
由以上本申请实施方式提供的技术方案可见,本申请实施方式基于名称字符串中第
一预定字符的统一码,将所述名称字符串划分至所述预定编码段对应的预定类别,并相应的对所述预定类别设置类别标识,在显示界面中对应展示所述预定类别的类别标识和与所述预定类别对应的名称字符串,实现了利用统一码与名称字符串的一一对应关系,将多个国家的语言在同一名称列表中进行分类展示。用户通过展示的类别标识可以快速定位至名称列表中的具体名称字符串,查找对对应的目标名称。所述名称列表展示方法在实现的过程中摆脱了传统的预设字典的方式,利用已有的统一码进行归类排序,减少了大量的人力劳动,节约了人力资源成本。
附图说明
为了更清楚地说明本申请实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一个实施方式提供的名称列表展示方法的流程图;
图2为本申请一个实施方式提供的名称列表展示方法的流程图;
图3为本申请一个实施方式提供的名称列表展示方法的流程图;
图4为本申请一个实施方式提供的名称列表展示方法的流程图;
图5为本申请一个实施方式提供的客户端的模块图;
图6为本申请一个实施方式提供的客户端的模块图;
图7为本申请一个实施方式提供的名称列表处理方法的流程图;
图8为本申请一个实施方式提供的名称列表处理方法的流程图;
图9为本申请一个实施方式提供的名称列表处理方法的流程图;
图10为本申请一个实施方式提供的名称列表处理方法的流程图;
图11为本申请一个实施方式提供的服务器的模块图;
图12为本申请一个实施方式提供的预定类别划分模块的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申请保护的范围。
请参阅图1,本申请的一个实施方式提供一种名称列表展示方法可以包括如下步骤。
步骤S10:获取名称数据;其中,所述名称数据包括有至少一个名称字符串。
在本实施方式中,客户端可以是具有网络通讯功能的通信设备,例如台式电脑、笔记本电脑、平板电脑、智能手机和智能可穿戴设备等。当然,客户端也可以为运行于上述通信设备中的软件。所述客户端可以被用户使用,可以进行即时通讯等交互活动,在即时通讯过程中,可以进行网上交易、在线电子支付等各种电子商务活动。
在本实施方式中,所述名称数据可以预存于所述客户端中。当用户需要进行即时通讯、电子商务等交互活动时,可以通过处理器调取所述预存的名称数据。所述名称数据也可以通过从服务器端下载获得。当用户需要进行电子商务活动时,可以通过数据通讯模块从服务器端进行下载所述名称数据。或者,所述名称数据也可以由用户以输入的方式临时建立获得。此外,获取所述名称数据的方式还可以为其他方式,例如,接受其他客户端发送的名称数据等等,本申请在此并不作具体限定。
在本实施方式中,所述名称数据可以为用户在进行即时通讯、电子商务等交互活动时需要使用的名称集合。所述名称具体的可以为:姓名、昵称、公司名称、账户名称、地点名称等等,本申请在此并不作具体的限定。
在本实施方式中,所述名称数据包括有至少一个名称字符串。所述名称字符串可以为所述姓名、昵称、公司名称、账户名称、地点名称中的一个具体名字。具体的,所述名称字符串可以为具体的一个姓名,例如“王二小”。所述名称字符串也可以为具体的一个账户名称,例如某个银行的银行卡号:“622848440637874213”。所述名称字符串的形式具体可以为某种语言的至少一个字、词、词组等,或者可以为一种符号、数字、字母或者多种结合等,当然所述名称字符串还可以为其他形式,本申请在此并不作具体的限定。
步骤S12:获取所述名称字符串中第一预定字符的统一码。
在本实施方式中,统一码用于为每种语言中的字符设定了统一并且唯一编码,以满足跨语言、跨平台进行文本转换、处理的要求。所述统一码具有一个字符集,其可以用预定进制的数字来映射这些字符,使得在所述统一码的字符集中的字符与每种语言中的字符存在一一对应关系。即一个统一码唯一对应有一个字符。所述预定进制的数字可以为十六进制,二进制等等,此处不作一一陈述。具体的,例如Unicode码为一种典型的统一码,其用十六进制数字0-0x10FFFF来映射各种语言的字符。如,中、日、韩CJK(Chinese Japanese Korean)的三种文字占用了Unicode中0x3000到0x9FFF的部分。Unicode目前普遍采用的是UCS-2规范编码,具体的,其用两个字节来编码一个字符。比如汉字“经”的编码是0x7ECF。由于字符编码一般用十六进制来表示,为了与十进制
区分,十六进制以0x开头,0x7ECF转换成十进制就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制,2的16次方等于65536,所以UCS-2最多能编码65536个字符。
在本实施方式中,在所述客户端可以存储有统一字符集,所述统一字符集中可以包括字符、以及与字符相对应的统一码。此外,所述统一字符集也可以存储于服务器端,客户端可以通过通信模块与所述服务器端建立通信后,获取所述统一字符集中的相关字符以及与字符相对应的统一码。所述每个第一预定字符可以唯一对应有一个统一码。具体的,所述第一预定字符可以为所述名称字符串的首字符,也可以为所述名称字符串中的首字符与第二字符的结合,也可以单独为第二字符,或者还可以是由用户预先指定的所述名称字符串中的某个预定字符。当然,所述第一预定字符并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在本实施方式中,由于所述第一预定字符可以唯一对应有一个统一码,根据所述第一预定字符,通过查找的方式或者通过所述第一预定字符与统一码的映射关系,可以获得所述名称字符串中第一预定字符的统一码。具体的,例如可以通过将所述第一预定字符转换为十六进制数字,然后在所述统一字符集中进行查找。若查找到在所述统一字符集中相同的十六进制数字,则可以唯一确定所述第一预定字符的统一码。或者,根据所述第一预定字符,通过字符与十六进制数字的映射关系,在所述统一字符集中进行查找,以获取所述名称字符串中第一预定字符的统一码。当然,所述获取的方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他方式的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
步骤S14:确定所述第一预定字符的统一码对应的预定编码段,将所述名称字符串划分至所述预定编码段对应的预定类别;其中,所述预定编码段的数量为至少一个,每个所述预定编码段对应一个预定类别。
在本实施方式中,可以利用编程语言API(Application Programming Interface,应用程序编程接口)中的语言排序机制,根据语言的发音、拼写等特点,将所述第一预定字符的统一码进行划分,设定至少一个预定编码段。其中每个所述预定编码段可以对应设置为一个预定类别,或者多个预定编码段可以对应设置为同一个预定类别,进而将多种语言的文字进行归类至有限的类别。
由于一般情况下,统一编码并不按语言的发音等规律进行排列。为了使得预定编码段的划分符合用户语言习惯,可以利用排序器,例如Java中的collator,根据语言的发音等特点,将字符进行排序。进一步的,将排序后的字符对应的统一码划分为至少一个预
定的编码段。具体的,所述排序器collator在进行排序时,能够根据语言的特点,比较两个字符的先后顺序,进而能够将统一字符集中的字符按照语言特点进行分段排序。例如,在Java语言标准库里面,对于中文,可以根据其发音,所有“啊”(a)发音的第一预定字符排在所有“吧”(ba)发音的第一预定字符的前面。所有“吧”(ba)发音的第一预定字符排在所有“擦”(ca)发音的第一预定字符的前面。以此类推,根据字符的发音将名称数据中的第一预定字符分为“a”至“z”26个预定编码段。
在本实施方式中,所述预定类别为多个名称字符串的集合。所述预定类别在数据结构上可以通过队列、数据栈、数组等方式实现。例如,当所述预定类别的数据结构方式为数组的数据结构方式时,可以将第一预定字符发音属于同一预定编码段的名称字符串存储于同一个数组下,以形成一个预定类别。例如,将“陈一”、“成二”、“蔡三”、“程四”存储于同一个数组下,以形成一个预定类别。当然,形成所述预定类别的数据结构方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在一个具体的实施方式中,为了使得预定编码段的划分符合用户语言习惯,可以利用Java中的collator根据语言的发音、拼写等特点将第一预定字符对应的统一码按序排列,并分为至少一个预定编码段。当需要判断某个第一预定字符具体属于对应的某个预定编码段时,可以将所述第一预定字符与所述预定编码段的段首和/或段尾的统一码对应的字符比较。若该第一预定字符的顺序为位于所述预定编码段的段首字符以后,而位于段尾字符以前,或者位于下一个段首字符之前的顺序,则可以确定该第一预定字符属于此预定编码段。
此外,在划分预定编码段时,预定编码段段首和/或段尾统一码与预定类别之间可以形成有对应关系。请参看表1。当确定了预定编码段后,可以根据所述预定编码段与预定类别的对应关系,确定所述名称字符串的预定类别。
在本实施方式中,利用了现有的Java中的collator,实现了根据语言的发音、拼写等特点进行比较排序。当然,具体的排序方式并不限于上述描述,所属领域技术人员在本申请的技术精髓启发下,还可以作出其他方式的变更,例如选择现有的其他排序器或者根据排序功能自行进行编写等,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
表1
在本实施方式中,操作系统中可以集成有统一字符集,即每个字符对应的统一码可以从操作系统中获得。所述客户端中可以仅存储所述预定编码段的段首统一码,如此可以实现在统一码分段时,通过段首统一码,区分不同的预定编码段;或者是所述预定编码段的段首统一码和所述预定编码段的段尾段尾统一码。具体的,例如当所述预定编码段为26个时,对应的,所述客户端存储的为26个预定编码段的统一码,共26个;或者预定编码段的段首统一码和段尾的统一码,共52个。因此,相对于客户端来说,所需占用的存储空间较小。
在另一个具体的实施方式中,由于一般情况下,统一编码并不按每种语言的发音等规律进行排列。为了使得预定编码段的划分符合用户语言习惯,可以将第一预定字符对应的统一码根据语言的发音等特点对应一个索引值,根据所述索引值进行排序,进而可以将所述根据索引值排序后的统一码分为至少一个预定的编码段。
例如,在Java语言标准库里面,对于中文,可以根据其发音,给所述第一预定字符对应的统一码一个对应的索引值。所述索引值可以看成一个数字。比如“啊”(a),其索引值可能是1;而“吧”(ba),其索引值可能是10,那么所有“啊”(a)至“吧“(ba)之间发音的汉字,它的索引值在1-10之间。
请参阅表2。针对每个预定编码段可以对应有一个预定类别。例如,编码段段首索引值为[1,10)对应的预定类别为A类别,即实现了将字符发音的首字母为a的字,例如“啊”、“安”等归至A类别中。编码段段首索引值为[10,20)对应的预定类别为B类别,即实现了将字符发音的首字母为b的字,例如“吧”、“被”等归至B类别中。以此类推,编制Z类别。从而将整个中文编码块划分至26个编码段,对应的26个预定类别。
表2
在本实施方式中,通过将所述第一预定字符的统一码的索引值与预设编码段的段首索引值和/或段尾索引值进行查找比较的方式,可以确定所述第一预定字符对应的预定编码段。由于所述预定编码段对应有预定类别,因此可以将所述名称字符串划分至所述预定编码段对应的预定类别。
在一个具体的实施方式中,对于某个第一预定字符,将其对应的统一码的索引值和预定编码段首索引值和/或段尾索引值进行比较,进而确定所述第一预定字符所对应的预定编码段以及预定类别。请结合参阅表2。例如,如果某个第一预定字符的统一码对应的索引值大于等于所述1而小于10,则可以确定所述第一预定字符所对应的预定编码段和预定类别,进而可以将所述第一预定字符对应的所述名称字符串划分至所述预定编码段的A类别中。
在本实施方式中,操作系统中可以集成有统一字符集,即每个第一预定字符对应的统一码可以从操作系统中获得。所述客户端中可以仅存储的所述预定编码段的段首索引值,如此可以实现在统一码分段时,通过段首索引值和/或段尾索引值,区分不同的预定编码段。具体的,例如当所述预定编码段为26个时,对应的,所述客户端存储的为26个预定编码段的索引值,共26个;或者预定编码段的段首索引值和段尾的索引值,共52个。因此,相对于客户端来说,所需占用的存储空间较小。
当然,所述确定所述第一预定字符的统一码对应的预定编码段的方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他方式的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
步骤S16:在显示界面中对应展示所述预定类别的类别标识,和与所述预定类别对应的名称字符串。
在本实施方式中,所述预定类别可以对应有类别标识,在显示界面中展示时,可以
将所述预定类别的类别标识和与所述预定类别对应的名称字符串一同展示出来,形成便于用户查找的名称列表。
具体的,所述类别标识可以为根据用户语言习惯,便于用户识别的标识。例如,对于使用中文的用户,其类别标识可以为所述第一预定字符发音的首字母。对于使用英文的用户,其类别标识可以为所述第一预定字符的首字母。当然,对于其他语言种类而言,其类别标识也可以为所述第一预定字符发音的音标或者是拼写的首字母等等,此处不再重复举例。
在本实施方式中,所述预定类别对应的名称字符串可以全部显示或者显示部分所述名称字符串或者不显示所述名称字符串。例如,所述预定类别包括有很多名称字符串,此时,可设定在所述预定类别对应的类别标记下最多显示预定个数的名称字符串,例如可以设定最多显示3个名称字符串。此外,也可以设定在所述显示界面只显示所述类别标记。所述类别标记的相应位置检测到用户点击产生的信号时,可进一步向用户展示单个类别标记下的名称字符串。
本申请实施方式所述名称列表展示方法基于名称字符串中第一预定字符的统一码,将所述名称字符串划分至所述预定编码段对应的预定类别,并相应的对所述预定类别设置类别标识,在显示界面中对应展示所述预定类别的类别标识和与所述预定类别对应的名称字符串,实现了利用统一码与名称字符串的一一对应关系,将多个国家的语言在同一名称列表中进行分类展示。用户通过展示的类别标识可以快速定位至名称列表中的具体名称字符串,查找对对应的目标名称。所述名称列表展示方法在实现的过程中摆脱了传统的预设字典的方式,利用已有的统一码进行归类排序,减少了大量的人力劳动,节约了人力资源成本。
可以理解,在目前现有的操作系统中,通常都集成有统一码,以作为跨地域或数据平台数据流动时,对文字数据进行编码解码的依据。在本申请中,通过利用统一码对名称列表进行分类排序,可以实现没有在现有客户端中引入的额外字典的方式,进行名称列表分类排序。具体的,例如可以不引入类似pinyin4j字典,实现节省了存储空间。
在一个实施方式中,所述名称数据的具体内容可以包括,人名、公司名称、账户名称、地点名称中的至少一个。
在本实施方式中,所述名称数据可以包括至少一个名称字符串。所述名称字符串具体的可以为人名、公司名称、账户名称、地点名称等等,本申请在此并不作具体的限定。当所述名称数据的具体内容为人名时,所述人名可以为用户的真实姓名,也可以为用户给自己设定的昵称等。
所述名称数据的种类可以为只包括一个名称种类,例如只包括人名;也可以同时包
括多个名称种类,例如同时包括人名、公司名称、账户名称等等。当所述名称数据同时包括多个名称种类时,若多个名称种类之间有对应关系,则可以将所述多个名称种类进行划分,例如可以设定多个名称种类中的一种的名称字符串为主名称,设定多个名称种类中的其他名称作为从属名称。展示时,可以只将所述主名称在显示界面中进行显示,其他与主名称相对应的从属名称,可以与所述主名称对应存储。当主名称所在的位置检测到点击触发的电信号时,可以显示所述从属名称。另外,当所述从属名称在显示界面显示后,还可以对从属名称进行复制、编辑等操作。
例如,名称数据具体内容为“甲公司小王中国银行账户XX”,设定人名为主名称,其他公司、账户名称为从属名称。展示时,将所述主名称“小王”在显示界面中进行显示,其他与“小王”相对应的从属名称“甲公司”、“中国银行账户XX”,可以与所述主名称“小王”对应存储。当点击所述主名称“小王”时,可以相应地显示所述从属名称“甲公司”、“中国银行账户XX”,进一步地,可以对从属名称进行复制、编辑等操作。
在一个实施方式中,所述第一预定字符可以为所述名称字符串的首字符。
在本实施方式中,所述名称字符串具体的可以为人名、公司名称、账户名称、地点名称等等。所述名称字符串可以包括一个或者多个字符。而所述名称字符串的首字符很多情况下能够典型地代表整个名称字符串。例如,当所述名称字符串为人名时,其首字符可以为姓氏,当所述名称字符串为公司名称时,其首字符也可为公司名称第一个字。当将所述第一预定字符设定为所述名称字符串的首字符,后续以所述名称字符串进行分类形成的名称列表符合用户的使用习惯,有助于用户基于形成的名称列表进行查询。
在一个实施方式中,可以通过Java中的collator确定所述第一预定字符的统一码对应的预定编码段。
在本实施方式中,由于一般情况下,统一编码并不按语言的发音等规律进行排列。为了使得预定编码段的划分符合用户语言习惯,可以利用排序器,例如Java中的collator,根据语言的发音等特点,将字符进行排序。进一步的,将排序后的每个字符对应的统一码划分为至少一个预定的编码段。具体的,所述排序器collator在进行排序时,能够根据语言的特点,比较两个字符的先后顺序,进而能够将统一字符集中的字符按照语言特点进行分段排序。例如,在Java语言标准库里面,对于中文,可以根据其发音,所有“啊”(a)发音的第一预定字符排在所有“吧”(ba)发音的第一预定字符的前面。所有“吧”(ba)发音的第一预定字符排在所有“擦”(ca)发音的第一预定字符的前面。以此类推,根据第一预定字符的发音将名字数据中的中文字符分为“a”至“z”26个预定编码段。
在本实施方式中,利用了现有的Java中的collator,实现了根据语言的发音、拼写等
特点进行比较排序。当然,具体的排序方式并不限于上述描述,所属领域技术人员在本申请的技术精髓启发下,还可以作出其他方式的变更,例如选择现有的其他排序器或者根据排序功能自行进行编写等,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在一个具体的实施方式中,例如,新增加了一个名称字符串,需要判断所述新增加的名称字符串的第一预定字符具体属于对应的某个预定编码段时,可以将所述第一预定字符与所述预定编码段的段首和/或段尾的统一码对应的字符比较。若该第一预定字符的顺序为位于所述预定编码段的段首字符以后而位于段尾字符以前的顺序,或者位于下一个段首字符之前的顺序,则可以确定该第一预定字符属于此预定编码段。
在一个实施方式中,至少一个所述预定编码段组成一个语言编码块;其中,不同所述语言编码块具有至少部分相同的预定类别。相应的,在将预定编码划分预定类别的步骤中包括:在属于不同所述语言编码块的名称字符串所处的预定编码段对应的预定类别相同时,将所述名称字符串同划分至所述预定类别的预设数据集中。
在本实施方式中,在统一码中针对不同的语言种类,可以设定有不同的语言编码块。例如,可以包括中日韩文编码块、英文编码块、俄文编码块、阿拉伯文编码块等等。其中,不同所述语言编码块可以具有至少部分相同的预定类别。
在一个具体的实施方式中,请结合表1所示。对于中文编码块而言,利用Java中的collator可以根据语言的发音等特点对应设定多个预定编码段。例如,可以根据所述第一预定字符的发音特点,将所述第一预定字符对应的统一码分为“a”至“z”26个预定编码段。针对每个预定编码段可以对应有一个预定类别。例如所述“a”至“z”26个预定编码段分别对应的预定类别为A至Z26个类别。
对于英文编码块而言,请参看表3,利用Java中的collator可以根据字符拼写特点对应设置多个预定编码段。此外,当所述英文编码块的统一码本身排列顺序为按照A至Z的顺序排列时,也可以根据所述统一码本身排列顺序设置多个预定编码段。例如,可以根据第一预定字符的拼写特点,将所述第一预定字符分为A到Z26个预定编码段。针对每个预定编码段可以对应有一个预定类别。例如,第一预定编码段段首统一码97对应的预定类别为A类别,即将首字母为A的名称字符串归至预定类别A中。第二预定编码段段首统一码98对应的预定类别为B类别,即将首字母为B的名称字符串归至预定类别B中。依次类推,编制预定类别Z。从而将整个英文编码块划分至26个编码段,对应的26个预定类别。
表3
请参阅表4,由于所述中文编码块的预定类别和英文编码块的预定类别从A至Z相同,因此可以将属于相同预定类别的名称字符串划分至所述预定类别中,形成所述预设数据集,进而实现中英文混合排序。
此外,所述英文编码块利用Java中的collator根据字符拼写特点对应设置多个预定编码段时,对应的每个预定编码段的段首或段尾可以设置有索引值,当所述英文编码块对应的索引值与所述中文编码块对应的索引值相同时,则可以确定所述索引值相同的名称字符串属于同一类别。
表4
在另一个实施方式中,请参阅表5,所述中文编码块与所述英文编码块也可以不划分至相同的所述预定类别中,即各自按照各自的预定类别进行划分,不进行混排。例如,英文编码块、中午编码块按照统一码的先后顺序进行分类排列,可以整体上按照英文编码块在前,中文编码块在后的顺序进行分类和排列。不同的编码块具体的分类的标记可以相同,也可以不同,本申请在此并不作具体的限定。
表5
英文编码块 |
预定编码段段首统一码 |
预定类别 |
|
//— |
A类别 |
|
//˜ |
B类别 |
|
//™ |
C类别 |
|
//Ā |
D类别 |
|
//ā |
E类别 |
|
//Ă |
F类别 |
|
//… |
… |
中文编码块 |
预定编码段段首统一码 |
预定类别 |
|
//啊 |
A类别 |
|
//芭 |
B类别 |
|
//擦 |
C类别 |
|
//搭 |
D类别 |
|
//蛾 |
E类别 |
|
//发 |
F类别 |
|
//… |
… |
当然,所述语言编码块的种类并不限于举例的中文语言编码块、英文语言编码块,数量也不限于两种语言编码块。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他方式的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
请参阅图2,在一个实施方式中,在确定预定编码段的步骤S14中可以包括如下步骤。
步骤S140:确定所述名称字符串中第一预定字符的统一码对应的语言编码块。
步骤S142:在所述语言编码块中,确定所述第一预定字符的统一码所在的预定编码段。
在本实施方式中,在确定所述预定编码段时,可以先根据所述名称字符串中第一预定字符的统一码确定其对应的语言编码块。在基于确定的语言编码块的基础上,进一步确定所述第一预定字符的统一码所在的预定编码段。
具体的,在统一码中针对不同的语言种类,可以设定有不同的语言编码块。每个语言编码块的首字符的统一码以及字符的个数都是已知的。在确定所述名称字符串中的第
一预定字符的统一码对应的语言编码块时,可将所述第一预定字符的统一码与每个语言编码块的首字符统一码进行比较。当所述第一预定字符的统一码大于等于某个语言编码块的首字符统一码,且其与某个语言编码块的首字符统一码的差值小于所述语言编码块的个数时,则可以确定所述第一预定字符为所述语言编码块中的字符。
当确定了所述名称字符串中第一预定字符的统一码对应的语言编码块后,可以将所述第一预定字符的统一码在所述确定的语言编码块内进行查找,以便快速确定所述第一预定字符的统一码所在的预定编码段。具体的,所述确定的语言编码块一般地包括有多个语言编码段,每个语言编码段至少对应有一个统一码。确定所述第一预定字符的统一码时,可以将所述第一预定字符的统一码与所述语言编码段的统一码进行对比,若有相同,则可以确定所述第一预定字符的统一码所在的预定编码段。
在一个具体的实施方式中,如表3所示,英文语言编码块可以包括26个语言编码段。在这26个语言编码段中,每个预定编码段对应有一个统一码。当所述预定编码段对应的统一码为按照大小顺序排列时,可以将所述一一预定字符的统一码与每个预定编码段的统一码进行比较,若有相同,则可以确定所述第一预定字符的统一码所在的预定编码段。
在一个实施方式中,所述方法还可以包括:在没有与所述名称字符串中第一预定字符的统一码对应的语言编码块时,将所述名称字符串划分至预设指定类别。
在本实施方式中,可以预先在客户端设置有预设指定类别,用于归类没有查找到对应语言编码块的名称字符串。所述预设指定类别可以为排列于所述预定类别后的一个单独的类别,其可以用一个特殊的标记进行展示。例如可以用“#”表示其下包括的是不属于统一码所包括的语言编码块的预设指定类别。
在本实施方式中,在没有与所述名称字符串中第一预定字符的统一码对应的语言编码块时,说明所述名称字符串中第一预定字符不属于统一码中已有的语言或符号。此时,可以将其划分至预设指定类别。
在一个实施方式中,在展示类别标识和名称字符串的步骤S16中还可以包括:
将属于同一所述预定类别的所述名称字符串按照所述第一预定字符的统一码的编码顺序排列。
在本实施方式中,所述名称字符串的第一预定字符可以对应有唯一的统一码。将属于同一预定类别的所述名称字符串进行排序时,可以按照所述第一预定字符的统一码的编码顺序排列。
具体的,由于所述第一预定字符的统一码的编码本身为一个十六进制的数字,可以依照数字的大小顺序进行排列。例如可以按照所述第一预定字符的统一码由小到大的顺序对所述同一预定类别下的名称字符串进行排列。
在一个具体的实施方式中,例如对于C类别下的名称字符串:第一预定字符,例如“陈一”、“成二”、“蔡三”,可以根据其第一预定字符“蔡”、“陈”、“成”统一码由小到大的顺序的特点,将所述C类别下的名称字符串排列为“蔡三”、“陈一”、“成二”,实现了同一类别下,名称字符串的排序。
请参阅图3,在一个实施方式中,在所述第一预定字符的统一码相同时,所述方法还可以包括如下步骤。
步骤S161:获取所述名称字符串中第二预定字符。
步骤S163:将属于同一所述预定类别的所述名称字符串按照所述第二预定字符的统一码的编码顺序排列。
在本实施方式中,所述第一预定字符的统一码相同的情况,具体可表示所述名称字符串包含有相同的第一预定字符。
在本实施方式中,所述第二预定字符可以为所述名称字符串中,除了所述第一预定字符之外的一个字符或多个字符的组合。具体的,由于所述第二预定字符的统一码的编码本身可为一个十六进制的数字,可以依照数字的大小顺序进行排列。例如可以按照所述第二预定字符的统一码由小到大的顺序对所述同一预定类别下的名称字符串进行排列。
在一个具体的实施方式中,当所述名称字符串都为姓名时,其可以表示包含多个姓氏相同的名字。例如,在W类别下,名称字符串包括:“王一”、“王二”、“王三”。分别获取所述第一预定字符的统一码时,发现其对应的统一码均相同。此时,进一步的可以获取除了所述第一预定字符之外第二字符的统一码。具体可获取的第二预定字符分别为“一”、“二”、“三”的统一码。在统一码字符集中,所述第二预定字符“一”、“二”、“三”的统一码的排序为“二”、“三”、“一”。对应的,可以将与所述第二预定字符相对应的名称字符串排列为“王二”、“王三”、“王一”,从而实现了,当第一预定字符相同时,对同一类别下的名称字符串排序。
请参阅图4,在一个实施方式中,在展示类别标识和名称字符串的步骤S14中还可以包括如下步骤。
步骤S160:获取所述名称字符串中第二预定字符的统一码。
步骤S162:将属于同一所述预定类别的所述名称字符串按照所述第二预定字符的统一码的编码顺序排列。
在本实施方式中,所述第二预定字符可以为所述名称字符串中,除了所述第一预定字符之外的一个字符或多个字符的组合。具体的,由于所述第二预定字符的统一码的编码本身为一个十六进制的数字,可以依照数字的大小顺序进行排列。例如可以按照所述
第二预定字符的统一码由小到大的顺序对所述同一预定类别下的名称字符串进行排列。
在一个具体的实施方式中,当所述名称字符串为姓名时,例如在C类别下,名称字符串包括:“陈一”、“成二”、“蔡三”。上述名称字符串的第一预定字符为“蔡”、“陈”、“成”;第二预定字符为“一”、“二”、“三”。当名称字符串直接按照所述第二预定字符的统一码进行排序时,由于第二预定字符为“一”、“二”、“三”对应的统一码由小到大的排序为“二”、“三”、“一”,因此,C类别下对应的名称字符串的排序为“成二”、“蔡三”、“陈一”。本实施方式通过直接根据第二预定字符的统一码对与其对应的名称字符串进行排序,对于第一预定字符相同的情况来说,减少了不必要的第一预定字符统一码比较,能够提高排序的效率。
在一个实施方式中,在获取名称数据的步骤S10中还可以包括:接收用户指定的第一预定字符。
在本实施方式中,在获取名称数据时,可以接收用户指定的第一预定字符。具体的,所述指定的第一预定字符可为所述名称字符串中的一个字符或多个字符的组合。所述指定的第一预定字符用于在所述名称字符串归至预定类别后,将属于同一预定类别名称字符串进行排序。所述指定的第一预定字符具体的可以为名称的姓氏列表,可以为地点的国别列表,可以为账户的银行类别列表等等,本申请在此并不作具体限定。
在一个具体的实施方式中,所述指定的第一预定字符为一个姓氏列表时,所述姓氏列表中的姓氏可以按照顺序排列好。例如姓氏列表中包括“Brown”、“Smith”、“White”等,其按照先后顺序排列为:“Brown”、“Smith”、“White”。当所述名称数据包括的名称字符串为:“Alice Brown”、“Ada Smith”、“Alma White”。根据所述指定排序字符中“Brown”、“Smith”、“White”的排列顺序,上述名称字符串排列先后顺序为“Alice Brown”、“Ada Smith”、“Alma White”。
请参阅图5,本申请实施方式还提供一种客户端100,其可以包括:数据获取模块10、统一码获取模块12、预定类别划分模块14、显示模块16。
数据获取模块10,用于获取名称数据;其中,所述名称数据包括有至少一个名称字符串。
在本实施方式中,客户端可以是具有网络通讯功能的通信设备,例如台式电脑、笔记本电脑、平板电脑、智能手机和智能可穿戴设备等。当然,客户端也可以为运行于上述通信设备中的软件。所述客户端可以被用户使用,可以进行即时通讯等交互活动,在即时通讯过程中,可以进行网上交易、在线电子支付等各种电子商务活动。
在本实施方式中,所述名称数据可以预存于所述客户端中。当用户需要进行即时通讯、电子商务等交互活动时,可以通过处理器调取所述预存的名称数据。所述名称数据
也可以通过从服务器端下载获得。当用户需要进行电子商务活动时,可以通过数据通讯模块从服务器端进行下载所述名称数据。或者,所述名称数据也可以由用户以输入的方式临时建立获得。此外,获取所述名称数据的方式还可以为其他方式,例如,接受其他客户端发送的名称数据等等,本申请在此并不作具体限定。
在本实施方式中,所述名称数据可以为用户在进行即时通讯、电子商务等交互活动时需要使用的名称集合。所述名称具体的可以为:姓名、昵称、公司名称、账户名称、地点名称等等,本申请在此并不作具体的限定。
在本实施方式中,所述名称数据包括有至少一个名称字符串。所述名称字符串可以为所述姓名、昵称、公司名称、账户名称、地点名称中的一个具体名字。具体的,所述名称字符串可以为具体的一个姓名,例如“王二小”。所述名称字符串也可以为具体的一个账户名称,例如某个银行的银行卡号:“622848440637874213”。所述名称字符串的形式具体可以为某种语言的至少一个字、词、词组等,或者可以为一种符号、数字、字母或者多种结合等,当然所述名称字符串还可以为其他形式,本申请在此并不作具体的限定。
统一码获取模块12,用于获取所述名称字符串中第一预定字符的统一码。
在本实施方式中,统一码用于为每种语言中的字符设定了统一并且唯一编码,以满足跨语言、跨平台进行文本转换、处理的要求。所述统一码具有一个字符集,其可以用预定进制的数字来映射这些字符,使得在所述统一码的字符集中的字符与每种语言中的字符存在一一对应关系。即一个统一码唯一对应有一个字符。所述预定进制的数字可以为十六进制,二进制等等,此处不作一一陈述。具体的,例如Unicode码为一种典型的统一码,其用十六进制数字0-0x10FFFF来映射各种语言的字符。如,中、日、韩CJK(Chinese Japanese Korean)的三种文字占用了Unicode中0x3000到0x9FFF的部分。Unicode目前普遍采用的是UCS-2规范编码,具体的,其用两个字节来编码一个字符。比如汉字“经”的编码是0x7ECF。由于字符编码一般用十六进制来表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制,2的16次方等于65536,所以UCS-2最多能编码65536个字符。
在本实施方式中,在所述客户端可以存储有统一字符集,所述统一字符集中可以包括字符、以及与字符相对应的统一码。此外,所述统一字符集也可以存储于服务器端,客户端可以通过通信模块与所述服务器端建立通信后,获取所述统一字符集中的相关字符以及与字符相对应的统一码。所述每个第一预定字符可以唯一对应有一个统一码。具体的,所述第一预定字符可以为所述名称字符串的首字符,也可以为所述名称字符串中
的首字符与第二字符的结合,也可以单独为第二字符,或者还可以是由用户预先指定的所述名称字符串中的某个预定字符。当然,所述第一预定字符并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在本实施方式中,由于所述第一预定字符可以唯一对应有一个统一码,根据所述第一预定字符,通过查找的方式或者通过所述第一预定字符与统一码的映射关系,可以获得所述名称字符串中第一预定字符的统一码。具体的,例如可以通过将所述第一预定字符转换为十六进制数字,然后在所述统一字符集中进行查找。若查找到在所述统一字符集中相同的十六进制数字,则可以唯一确定所述第一预定字符的统一码。或者,根据所述第一预定字符,通过字符与十六进制数字的映射关系,在所述统一字符集中进行查找,以获取所述名称字符串中第一预定字符的统一码。当然,所述获取的方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他方式的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
预定类别划分模块14,用于确定所述第一预定字符的统一码对应的预定编码段,将所述名称字符串划分至所述预定编码段对应的预定类别;其中,所述预定编码段的数量为至少一个,每个所述预定编码段对应一个预定类别。
在本实施方式中,可以利用编程语言API(Application Programming Interface,应用程序编程接口)中的语言排序机制,根据语言的发音、拼写等特点,将所述第一预定字符的统一码进行划分,设定至少一个预定编码段。其中每个所述预定编码段可以对应设置为一个预定类别,或者多个预定编码段可以对应设置为同一个预定类别,进而将多种语言的文字进行归类至有限的类别。
由于一般情况下,统一编码并不按语言的发音等规律进行排列。为了使得预定编码段的划分符合用户语言习惯,可以利用排序器,例如Java中的collator,根据语言的发音等特点,将字符进行排序。进一步的,将排序后的字符对应的统一码划分为至少一个预定的编码段。具体的,所述排序器collator在进行排序时,能够根据语言的特点,比较两个字符的先后顺序,进而能够将统一字符集中的字符按照语言特点进行分段排序。例如,在Java语言标准库里面,对于中文,可以根据其发音,所有“啊”(a)发音的第一预定字符排在所有“吧”(ba)发音的第一预定字符的前面。所有“吧”(ba)发音的第一预定字符排在所有“擦”(ca)发音的第一预定字符的前面。以此类推,根据字符的发音将名称数据中的第一预定字符分为“a”至“z”26个预定编码段。
在本实施方式中,所述预定类别为多个名称字符串的集合。所述预定类别在数据结构上可以通过队列、数据栈、数组等方式实现。例如,当所述预定类别的数据结构方式
为数组的数据结构方式时,可以将第一预定字符发音属于同一预定编码段的名称字符串存储于同一个数组下,以形成一个预定类别。例如,将“陈一”、“成二”、“蔡三”、“程四”存储于同一个数组下,以形成一个预定类别。当然,形成所述预定类别的数据结构方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在一个具体的实施方式中,为了使得预定编码段的划分符合用户语言习惯,可以利用Java中的collator根据语言的发音、拼写等特点将第一预定字符对应的统一码按序排列,并分为至少一个预定编码段。当需要判断某个第一预定字符具体属于对应的某个预定编码段时,可以将所述第一预定字符与所述预定编码段的段首和/或段尾的统一码对应的字符比较。若该第一预定字符的顺序为位于所述预定编码段的段首字符以后,而位于段尾字符以前,或者位于下一个段首字符之前的顺序,则可以确定该第一预定字符属于此预定编码段。
此外,在划分预定编码段时,预定编码段段首和/或段尾统一码与预定类别之间可以形成有对应关系。请参看上述表1。当确定了预定编码段后,可以根据所述预定编码段与预定类别的对应关系,确定所述名称字符串的预定类别。
在本实施方式中,利用了现有的Java中的collator,实现了根据语言的发音、拼写等特点进行比较排序。当然,具体的排序方式并不限于上述描述,所属领域技术人员在本申请的技术精髓启发下,还可以作出其他方式的变更,例如选择现有的其他排序器或者根据排序功能自行进行编写等,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在本实施方式中,操作系统中可以集成有统一字符集,即每个字符对应的统一码可以从操作系统中获得。所述客户端中可以仅存储所述预定编码段的段首统一码,如此可以实现在统一码分段时,通过段首统一码,区分不同的预定编码段;或者是所述预定编码段的段首统一码和所述预定编码段的段尾段尾统一码。具体的,例如当所述预定编码段为26个时,对应的,所述客户端存储的为26个预定编码段的统一码,共26个;或者预定编码段的段首统一码和段尾的统一码,共52个。因此,相对于客户端来说,所需占用的存储空间较小。
在另一个具体的实施方式中,由于一般情况下,统一编码并不按每种语言的发音等规律进行排列。为了使得预定编码段的划分符合用户语言习惯,可以将第一预定字符对应的统一码根据语言的发音等特点对应一个索引值,根据所述索引值进行排序,进而可以将所述根据索引值排序后的统一码分为至少一个预定的编码段。
例如,在Java语言标准库里面,对于中文,可以根据其发音,给所述第一预定字符对应的统一码一个对应的索引值。所述索引值可以看成一个数字。比如“啊”(a),其索引值可能是1;而“吧”(ba),其索引值可能是10,那么所有“啊”(a)至“吧“(ba)之间发音的汉字,它的索引值在1-10之间。
请参阅上述表2。针对每个预定编码段可以对应有一个预定类别。例如,编码段段首索引值为[1,10)对应的预定类别为A类别,即实现了将字符发音的首字母为a的字,例如“啊”、“安”等归至A类别中。编码段段首索引值为[10,20)对应的预定类别为B类别,即实现了将字符发音的首字母为b的字,例如“吧”、“被”等归至B类别中。以此类推,编制Z类别。从而将整个中文编码块划分至26个编码段,对应的26个预定类别。
在本实施方式中,通过将所述第一预定字符的统一码的索引值与预设编码段的段首索引值和/或段尾索引值进行查找比较的方式,可以确定所述第一预定字符对应的预定编码段。由于所述预定编码段对应有预定类别,因此可以将所述名称字符串划分至所述预定编码段对应的预定类别。
在一个具体的实施方式中,对于某个第一预定字符,将其对应的统一码的索引值和预定编码段首索引值和/或段尾索引值进行比较,进而确定所述第一预定字符所对应的预定编码段以及预定类别。请结合参阅表2。例如,如果某个第一预定字符的统一码对应的索引值大于等于所述1而小于10,则可以确定所述第一预定字符所对应的预定编码段和预定类别,进而可以将所述第一预定字符对应的所述名称字符串划分至所述预定编码段的A类别中。
在本实施方式中,操作系统中可以集成有统一字符集,即每个第一预定字符对应的统一码可以从操作系统中获得。所述客户端中可以仅存储的所述预定编码段的段首索引值,如此可以实现在统一码分段时,通过段首索引值和/或段尾索引值,区分不同的预定编码段。具体的,例如当所述预定编码段为26个时,对应的,所述客户端存储的为26个预定编码段的索引值,共26个;或者预定编码段的段首索引值和段尾的索引值,共52个。因此,相对于客户端来说,所需占用的存储空间较小。
当然,所述确定所述第一预定字符的统一码对应的预定编码段的方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他方式的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
显示模块16,用于在显示界面中对应展示所述预定类别的类别标识,和与所述预定类别对应的名称字符串。
在本实施方式中,所述预定类别可以对应有类别标识,在显示界面中展示时,可以
将所述预定类别的类别标识和与所述预定类别对应的名称字符串一同展示出来,形成便于用户查找的名称列表。
具体的,所述类别标识可以为根据用户语言习惯,便于用户识别的标识。例如,对于使用中文的用户,其类别标识可以为所述第一预定字符发音的首字母。对于使用英文的用户,其类别标识可以为所述第一预定字符的首字母。当然,对于其他语言种类而言,其类别标识也可以为所述第一预定字符发音的音标或者是拼写的首字母等等,此处不再重复举例。
在本实施方式中,所述预定类别对应的名称字符串可以全部显示或者显示部分所述名称字符串或者不显示所述名称字符串。例如,所述预定类别包括有很多名称字符串,此时,可设定在所述预定类别对应的类别标记下最多显示预定个数的名称字符串,例如可以设定最多显示3个名称字符串。此外,也可以设定在所述显示界面只显示所述类别标记。所述类别标记的相应位置检测到用户点击产生的信号时,可进一步向用户展示单个类别标记下的名称字符串。
本申请实施方式所述客户端基于名称字符串中第一预定字符的统一码,将所述名称字符串划分至所述预定编码段对应的预定类别,并相应的对所述预定类别设置类别标识,在显示界面中对应展示所述预定类别的类别标识和与所述预定类别对应的名称字符串,实现了利用统一码与名称字符串的一一对应关系,将多个国家的语言在同一名称列表中进行分类展示。用户通过展示的类别标识可以快速定位至名称列表中的具体名称字符串,查找对对应的目标名称。在实现的过程中摆脱了传统的预设字典的方式,利用已有的统一码进行归类排序,减少了大量的人力劳动,节约了人力资源成本。
请参阅图6,本申请实施方式还提供一种客户端110,其可以包括:处理器11、显示器13。
所述处理器11用于获取名称数据;其中,所述名称数据包括有至少一个名称字符串;并用于获取所述名称字符串中第一预定字符的统一码;确定所述第一预定字符的统一码对应的预定编码段,将所述名称字符串划分至所述预定编码段对应的预定类别;其中,所述预定编码段的数量为至少一个,每个所述预定编码段对应一个预定类别;控制所述显示器13在显示界面中对应展示所述预定类别的类别标识,和与所述预定类别对应的名称字符串。
在本实施方式中,所述处理器11以按任何适当的方式实现。例如,处理器11以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本申请并不
作限定。
本申请客户端可以是本申请名称列表展示方法的一种硬件实施方式,可以实现本申请名称列表展示方法实施方式并达到方法实施方式的技术效果。
本发明实施方式中的名称列表处理方法可以由服务器来执行。
请参阅图7,本申请的一个实施方式提供一种名称列表处理方法可以包括如下步骤。
步骤S20:获取名称数据;其中,所述名称数据包括有至少一个名称字符串。
在本实施方式中,服务器可以是具有数据处理能力和网络通讯功能的设备,例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境。当然,服务器也可以包括运行于上述设备中的软件。
在本实施方式中,所述名称数据可以预存于所述服务器中。当用户需要进行电子商务活动时,可以通过数据通讯模块从服务器端进行下载所述名称数据。或者,所述名称数据也可以由用户以输入的方式临时建立获得。此外,获取所述名称数据的方式还可以为其他方式,例如,接受其他客户端发送的名称数据等等,本申请在此并不作具体限定。
在本实施方式中,所述名称数据可以为用户在进行即时通讯、电子商务等交互活动时需要使用的名称集合。所述名称具体的可以为:姓名、昵称、公司名称、账户名称、地点名称等等,本申请在此并不作具体的限定。
在本实施方式中,所述名称数据包括有至少一个名称字符串。所述名称字符串可以为所述姓名、昵称、公司名称、账户名称、地点名称中的一个具体名字。具体的,所述名称字符串可以为具体的一个姓名,例如“王二小”。所述名称字符串也可以为具体的一个账户名称,例如某个银行的银行卡号:“622848440637874213”。所述名称字符串的形式具体可以为某种语言的至少一个字、词、词组等,或者可以为一种符号、数字、字母或者多种结合等,当然所述名称字符串还可以为其他形式,本申请在此并不作具体的限定。
步骤S22:获取所述名称字符串中第一预定字符的统一码。
在本实施方式中,统一码用于为每种语言中的字符设定了统一并且唯一编码,以满足跨语言、跨平台进行文本转换、处理的要求。所述统一码具有一个字符集,其可以用预定进制的数字来映射这些字符,使得在所述统一码的字符集中的字符与每种语言中的字符存在一一对应关系。即一个统一码唯一对应有一个字符。所述预定进制的数字可以为十六进制,二进制等等,此处不作一一陈述。具体的,例如Unicode码为一种典型的统一码,其用十六进制数字0-0x10FFFF来映射各种语言的字符。如,中、日、韩CJK(Chinese Japanese Korean)的三种文字占用了Unicode中0x3000到0x9FFF的部分。
Unicode目前普遍采用的是UCS-2规范编码,具体的,其用两个字节来编码一个字符。比如汉字“经”的编码是0x7ECF。由于字符编码一般用十六进制来表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制,2的16次方等于65536,所以UCS-2最多能编码65536个字符。
在本实施方式中,在所述客户端可以存储有统一字符集,所述统一字符集中可以包括字符、以及与字符相对应的统一码。此外,所述统一字符集也可以存储于服务器端,客户端可以通过通信模块与所述服务器端建立通信后,获取所述统一字符集中的相关字符以及与字符相对应的统一码。所述每个第一预定字符可以唯一对应有一个统一码。具体的,所述第一预定字符可以为所述名称字符串的首字符,也可以为所述名称字符串中的首字符与第二字符的结合,也可以单独为第二字符,或者还可以是由用户预先指定的所述名称字符串中的某个预定字符。当然,所述第一预定字符并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在本实施方式中,由于所述第一预定字符可以唯一对应有一个统一码,根据所述第一预定字符,通过查找的方式或者通过所述第一预定字符与统一码的映射关系,可以获得所述名称字符串中第一预定字符的统一码。具体的,例如可以通过将所述第一预定字符转换为十六进制数字,然后在所述统一字符集中进行查找。若查找到在所述统一字符集中相同的十六进制数字,则可以唯一确定所述第一预定字符的统一码。或者,根据所述第一预定字符,通过字符与十六进制数字的映射关系,在所述统一字符集中进行查找,以获取所述名称字符串中第一预定字符的统一码。当然,所述获取的方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他方式的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
步骤S24:确定所述第一预定字符的统一码对应的预定编码段,将所述名称字符串划分至所述预定编码段对应的预定类别;其中,所述预定编码段的数量为至少一个,每个所述预定编码段对应一个预定类别。
在本实施方式中,可以利用编程语言API(Application Programming Interface,应用程序编程接口)中的语言排序机制,根据语言的发音、拼写等特点,将所述第一预定字符的统一码进行划分,设定至少一个预定编码段。其中每个所述预定编码段可以对应设置为一个预定类别,或者多个预定编码段可以对应设置为同一个预定类别,进而将多种语言的文字进行归类至有限的类别。
由于一般情况下,统一编码并不按语言的发音等规律进行排列。为了使得预定编码
段的划分符合用户语言习惯,可以利用排序器,例如Java中的collator,根据语言的发音等特点,将字符进行排序。进一步的,将排序后的字符对应的统一码划分为至少一个预定的编码段。具体的,所述排序器collator在进行排序时,能够根据语言的特点,比较两个字符的先后顺序,进而能够将统一字符集中的字符按照语言特点进行分段排序。例如,在Java语言标准库里面,对于中文,可以根据其发音,所有“啊”(a)发音的第一预定字符排在所有“吧”(ba)发音的第一预定字符的前面。所有“吧”(ba)发音的第一预定字符排在所有“擦”(ca)发音的第一预定字符的前面。以此类推,根据字符的发音将名称数据中的第一预定字符分为“a”至“z”26个预定编码段。
在本实施方式中,所述预定类别为多个名称字符串的集合。所述预定类别在数据结构上可以通过队列、数据栈、数组等方式实现。例如,当所述预定类别的数据结构方式为数组的数据结构方式时,可以将第一预定字符发音属于同一预定编码段的名称字符串存储于同一个数组下,以形成一个预定类别。例如,将“陈一”、“成二”、“蔡三”、“程四”存储于同一个数组下,以形成一个预定类别。当然,形成所述预定类别的数据结构方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在一个具体的实施方式中,为了使得预定编码段的划分符合用户语言习惯,可以利用Java中的collator根据语言的发音、拼写等特点将第一预定字符对应的统一码按序排列,并分为至少一个预定编码段。当需要判断某个第一预定字符具体属于对应的某个预定编码段时,可以将所述第一预定字符与所述预定编码段的段首和/或段尾的统一码对应的字符比较。若该第一预定字符的顺序为位于所述预定编码段的段首字符以后,而位于段尾字符以前,或者位于下一个段首字符之前的顺序,则可以确定该第一预定字符属于此预定编码段。
此外,在划分预定编码段时,预定编码段段首和/或段尾统一码与预定类别之间可以形成有对应关系。请参看上述表1。当确定了预定编码段后,可以根据所述预定编码段与预定类别的对应关系,确定所述名称字符串的预定类别。
在本实施方式中,利用了现有的Java中的collator,实现了根据语言的发音、拼写等特点进行比较排序。当然,具体的排序方式并不限于上述描述,所属领域技术人员在本申请的技术精髓启发下,还可以作出其他方式的变更,例如选择现有的其他排序器或者根据排序功能自行进行编写等,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在本实施方式中,操作系统中可以集成有统一字符集,即每个字符对应的统一码可
以从操作系统中获得。所述客户端中可以仅存储所述预定编码段的段首统一码,如此可以实现在统一码分段时,通过段首统一码,区分不同的预定编码段;或者是所述预定编码段的段首统一码和所述预定编码段的段尾段尾统一码。具体的,例如当所述预定编码段为26个时,对应的,所述客户端存储的为26个预定编码段的统一码,共26个;或者预定编码段的段首统一码和段尾的统一码,共52个。因此,相对于客户端来说,所需占用的存储空间较小。
在另一个具体的实施方式中,由于一般情况下,统一编码并不按每种语言的发音等规律进行排列。为了使得预定编码段的划分符合用户语言习惯,可以将第一预定字符对应的统一码根据语言的发音等特点对应一个索引值,根据所述索引值进行排序,进而可以将所述根据索引值排序后的统一码分为至少一个预定的编码段。
例如,在Java语言标准库里面,对于中文,可以根据其发音,给所述第一预定字符对应的统一码一个对应的索引值。所述索引值可以看成一个数字。比如“啊”(a),其索引值可能是1;而“吧”(ba),其索引值可能是10,那么所有“啊”(a)至“吧“(ba)之间发音的汉字,它的索引值在1-10之间。
请参阅上述表2。针对每个预定编码段可以对应有一个预定类别。例如,编码段段首索引值为[1,10)对应的预定类别为A类别,即实现了将字符发音的首字母为a的字,例如“啊”、“安”等归至A类别中。编码段段首索引值为[10,20)对应的预定类别为B类别,即实现了将字符发音的首字母为b的字,例如“吧”、“被”等归至B类别中。以此类推,编制Z类别。从而将整个中文编码块划分至26个编码段,对应的26个预定类别。在本实施方式中,通过将所述第一预定字符的统一码的索引值与预设编码段的段首索引值和/或段尾索引值进行查找比较的方式,可以确定所述第一预定字符对应的预定编码段。由于所述预定编码段对应有预定类别,因此可以将所述名称字符串划分至所述预定编码段对应的预定类别。
在一个具体的实施方式中,对于某个第一预定字符,将其对应的统一码的索引值和预定编码段首索引值和/或段尾索引值进行比较,进而确定所述第一预定字符所对应的预定编码段以及预定类别。请结合参阅表2。例如,如果某个第一预定字符的统一码对应的索引值大于等于所述1而小于10,则可以确定所述第一预定字符所对应的预定编码段和预定类别,进而可以将所述第一预定字符对应的所述名称字符串划分至所述预定编码段的A类别中。
在本实施方式中,操作系统中可以集成有统一字符集,即每个第一预定字符对应的统一码可以从操作系统中获得。所述客户端中可以仅存储的所述预定编码段的段首索引值,如此可以实现在统一码分段时,通过段首索引值和/或段尾索引值,区分不同的预定
编码段。具体的,例如当所述预定编码段为26个时,对应的,所述客户端存储的为26个预定编码段的索引值,共26个;或者预定编码段的段首索引值和段尾的索引值,共52个。因此,相对于客户端来说,所需占用的存储空间较小。
当然,所述确定所述第一预定字符的统一码对应的预定编码段的方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他方式的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
本申请实施方式所述名称列表处理方法基于名称字符串中第一预定字符的统一码,将所述名称字符串划分至所述预定编码段对应的预定类别,实现了利用统一码与名称字符串的一一对应关系,将多个国家的语言在同一名称列表中进行分类。使用时,可将所述预定类别的类别标识和与所述预定类别对应的名称字符串发送至客户端。当在所述客户端的显示界面中对应展示时,用户通过展示的类别标识可以快速定位至名称列表中的具体名称字符串,查找对对应的目标名称。所述名称列表展示方法在实现的过程中摆脱了传统的预设字典的方式,利用已有的统一码进行归类排序,减少了大量的人力劳动,节约了人力资源成本。
可以理解,服务器端存储的统一码,以作为跨地域或数据平台数据流动时,对文字数据进行编码解码的依据。在本申请中,通过利用统一码对名称列表进行分类排序,可以实现没有在现有客户端中引入的额外字典的方式,进行名称列表分类排序。具体的,例如可以不引入类似pinyin4j字典,实现节省了存储空间。
在一个实施方式中,所述名称列表处理方法还可以包括:将所述预定类别的类别标识,和与所述预定类别对应的名称字符串发送至客户端进行对应展示。
在本实施方式中,所述预定类别可以对应有类别标识。服务器与客户端之间可以件建立通信。例如,在服务器端接收到客户端的发送请求时,或者是服务器端自动更新后等情况下,所述服务器端可以将所述预定类别的类别标识和与所述预定类别对应的名称字符串发送给相应的客户端。所述客户端接收到后,可以将所述预定类别的类别标识和与所述预定类别对应的名称字符串一同展示出来,形成便于用户查找的名称列表。
具体的,所述类别标识可以为根据用户语言习惯,便于用户识别的标识。例如,对于使用中文的用户,其类别标识可以为所述第一预定字符发音的首字母。对于使用英文的用户,其类别标识可以为所述第一预定字符的首字母。当然,对于其他语言种类而言,其类别标识也可以为所述第一预定字符发音的音标或者是拼写的首字母等等,此处不再重复举例。
在本实施方式中,所述预定类别对应的名称字符串可以全部显示或者显示部分所述名称字符串或者不显示所述名称字符串。例如,所述预定类别包括有很多名称字符串,
此时,可设定在所述预定类别对应的类别标记下最多显示预定个数的名称字符串,例如可以设定最多显示3个名称字符串。此外,也可以设定在所述显示界面只显示所述类别标记。所述类别标记的相应位置检测到用户点击产生的信号时,可进一步向用户展示单个类别标记下的名称字符串。
在一个实施方式中,所述名称数据的具体内容可以包括,人名、公司名称、账户名称、地点名称中的至少一个。
在本实施方式中,所述名称数据可以包括至少一个名称字符串。所述名称字符串具体的可以为人名、公司名称、账户名称、地点名称等等,本申请在此并不作具体的限定。当所述名称数据的具体内容为人名时,所述人名可以为用户的真实姓名,也可以为用户给自己设定的昵称等。
所述名称数据的种类可以为只包括一个名称种类,例如只包括人名;也可以同时包括多个名称种类,例如同时包括人名、公司名称、账户名称等等。当所述名称数据同时包括多个名称种类时,若多个名称种类之间有对应关系,则可以将所述多个名称种类进行划分,例如可以设定多个名称种类中的一种的名称字符串为主名称,设定多个名称种类中的其他名称作为从属名称。展示时,可以只将所述主名称在显示界面中进行显示,其他与主名称相对应的从属名称,可以与所述主名称对应存储。当主名称所在的位置检测到点击触发的电信号时,可以显示所述从属名称。另外,当所述从属名称在显示界面显示后,还可以对从属名称进行复制、编辑等操作。
例如,名称数据具体内容为“甲公司小王中国银行账户XX”,设定人名为主名称,其他公司、账户名称为从属名称。展示时,将所述主名称“小王”在显示界面中进行显示,其他与“小王”相对应的从属名称“甲公司”、“中国银行账户XX”,可以与所述主名称“小王”对应存储。当点击所述主名称“小王”时,可以相应地显示所述从属名称“甲公司”、“中国银行账户XX”,进一步地,可以对从属名称进行复制、编辑等操作。
在一个实施方式中,所述第一预定字符可以为所述名称字符串的首字符。
在本实施方式中,所述名称字符串具体的可以为人名、公司名称、账户名称、地点名称等等。所述名称字符串可以包括一个或者多个字符。而所述名称字符串的首字符很多情况下能够典型地代表整个名称字符串。例如,当所述名称字符串为人名时,其首字符可以为姓氏,当所述名称字符串为公司名称时,其首字符也可为公司名称第一个字。当将所述第一预定字符设定为所述名称字符串的首字符,后续以所述名称字符串进行分类形成的名称列表符合用户的使用习惯,有助于用户基于形成的名称列表进行查询。
在一个实施方式中,可以通过Java中的collator确定所述第一预定字符的统一码对
应的预定编码段。
在本实施方式中,由于一般情况下,统一编码并不按语言的发音等规律进行排列。为了使得预定编码段的划分符合用户语言习惯,可以利用排序器,例如Java中的collator,根据语言的发音等特点,将字符进行排序。进一步的,将排序后的每个字符对应的统一码划分为至少一个预定的编码段。具体的,所述排序器collator在进行排序时,能够根据语言的特点,比较两个字符的先后顺序,进而能够将统一字符集中的字符按照语言特点进行分段排序。例如,在Java语言标准库里面,对于中文,可以根据其发音,所有“啊”(a)发音的第一预定字符排在所有“吧”(ba)发音的第一预定字符的前面。所有“吧”(ba)发音的第一预定字符排在所有“擦”(ca)发音的第一预定字符的前面。以此类推,根据第一预定字符的发音将名字数据中的中文字符分为“a”至“z”26个预定编码段。
在本实施方式中,利用了现有的Java中的collator,实现了根据语言的发音、拼写等特点进行比较排序。当然,具体的排序方式并不限于上述描述,所属领域技术人员在本申请的技术精髓启发下,还可以作出其他方式的变更,例如选择现有的其他排序器或者根据排序功能自行进行编写等,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在一个具体的实施方式中,例如,新增加了一个名称字符串,需要判断所述新增加的名称字符串的第一预定字符具体属于对应的某个预定编码段时,可以将所述第一预定字符与所述预定编码段的段首和/或段尾的统一码对应的字符比较。若该第一预定字符的顺序为位于所述预定编码段的段首字符以后而位于段尾字符以前的顺序,或者位于下一个段首字符之前的顺序,则可以确定该第一预定字符属于此预定编码段。
在一个实施方式中,至少一个所述预定编码段组成一个语言编码块;其中,不同所述语言编码块具有至少部分相同的预定类别。相应的,在将预定编码划分预定类别的步骤中包括:在属于不同所述语言编码块的名称字符串所处的预定编码段对应的预定类别相同时,将所述名称字符串同划分至所述预定类别的预设数据集中。
在本实施方式中,在统一码中针对不同的语言种类,可以设定有不同的语言编码块。例如,可以包括中日韩文编码块、英文编码块、俄文编码块、阿拉伯文编码块等等。其中,不同所述语言编码块可以具有至少部分相同的预定类别。
在一个具体的实施方式中,请结合表1所示。对于中文编码块而言,利用Java中的collator可以根据语言的发音等特点对应设定多个预定编码段。例如,可以根据所述第一预定字符的发音特点,将所述第一预定字符对应的统一码分为“a”至“z”26个预定编码段。针对每个预定编码段可以对应有一个预定类别。例如所述“a”至“z”26个预定编码段分别对应的预定类别为A至Z26个类别。
对于英文编码块而言,请参看上述表3,利用Java中的collator可以根据字符拼写特点对应设置多个预定编码段。此外,当所述英文编码块的统一码本身排列顺序为按照A至Z的顺序排列时,也可以根据所述统一码本身排列顺序设置多个预定编码段。例如,可以根据第一预定字符的拼写特点,将所述第一预定字符分为A到Z26个预定编码段。针对每个预定编码段可以对应有一个预定类别。例如,第一预定编码段段首统一码97对应的预定类别为A类别,即将首字母为A的名称字符串归至预定类别A中。第二预定编码段段首统一码98对应的预定类别为B类别,即将首字母为B的名称字符串归至预定类别B中。依次类推,编制预定类别Z。从而将整个英文编码块划分至26个编码段,对应的26个预定类别。
请参阅上述表4,由于所述中文编码块的预定类别和英文编码块的预定类别从A至Z相同,因此可以将属于相同预定类别的名称字符串划分至所述预定类别中,形成所述预设数据集,进而实现中英文混合排序。
此外,所述英文编码块利用Java中的collator根据字符拼写特点对应设置多个预定编码段时,对应的每个预定编码段的段首或段尾可以设置有索引值,当所述英文编码块对应的索引值与所述中文编码块对应的索引值相同时,则可以确定所述索引值相同的名称字符串属于同一类别。
在另一个实施方式中,请参阅上述表5,所述中文编码块与所述英文编码块也可以不划分至相同的所述预定类别中,即各自按照各自的预定类别进行划分,不进行混排。例如,英文编码块、中午编码块按照统一码的先后顺序进行分类排列,可以整体上按照英文编码块在前,中文编码块在后的顺序进行分类和排列。不同的编码块具体的分类的标记可以相同,也可以不同,本申请在此并不作具体的限定。
当然,所述语言编码块的种类并不限于举例的中文语言编码块、英文语言编码块,数量也不限于两种语言编码块。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他方式的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
请参阅图8,在一个实施方式中,在确定预定编码段的步骤S24中可以包括如下步骤。
步骤S240:确定所述名称字符串中第一预定字符的统一码对应的语言编码块。
步骤S242:在所述语言编码块中,确定所述第一预定字符的统一码所在的预定编码段。
在本实施方式中,在确定所述预定编码段时,可以先根据所述名称字符串中第一预定字符的统一码确定其对应的语言编码块。在基于确定的语言编码块的基础上,进一步
确定所述第一预定字符的统一码所在的预定编码段。
具体的,在统一码中针对不同的语言种类,可以设定有不同的语言编码块。每个语言编码块的首字符的统一码以及字符的个数都是已知的。在确定所述名称字符串中的第一预定字符的统一码对应的语言编码块时,可将所述第一预定字符的统一码与每个语言编码块的首字符统一码进行比较。当所述第一预定字符的统一码大于等于某个语言编码块的首字符统一码,且其与某个语言编码块的首字符统一码的差值小于所述语言编码块的个数时,则可以确定所述第一预定字符为所述语言编码块中的字符。
当确定了所述名称字符串中第一预定字符的统一码对应的语言编码块后,可以将所述第一预定字符的统一码在所述确定的语言编码块内进行查找,以便快速确定所述第一预定字符的统一码所在的预定编码段。具体的,所述确定的语言编码块一般地包括有多个语言编码段,每个语言编码段至少对应有一个统一码。确定所述第一预定字符的统一码时,可以将所述第一预定字符的统一码与所述语言编码段的统一码进行对比,若有相同,则可以确定所述第一预定字符的统一码所在的预定编码段。
在一个具体的实施方式中,如表3所示,英文语言编码块可以包括26个语言编码段。在这26个语言编码段中,每个预定编码段对应有一个统一码。当所述预定编码段对应的统一码为按照大小顺序排列时,可以将所述一一预定字符的统一码与每个预定编码段的统一码进行比较,若有相同,则可以确定所述第一预定字符的统一码所在的预定编码段。
在一个实施方式中,所述方法还可以包括:在没有与所述名称字符串中第一预定字符的统一码对应的语言编码块时,将所述名称字符串划分至预设指定类别。
在本实施方式中,可以预先在客户端设置有预设指定类别,用于归类没有查找到对应语言编码块的名称字符串。所述预设指定类别可以为排列于所述预定类别后的一个单独的类别,其可以用一个特殊的标记进行展示。例如可以用“#”表示其下包括的是不属于统一码所包括的语言编码块的预设指定类别。
在本实施方式中,在没有与所述名称字符串中第一预定字符的统一码对应的语言编码块时,说明所述名称字符串中第一预定字符不属于统一码中已有的语言或符号。此时,可以将其划分至预设指定类别。
在一个实施方式中,所述客户端在展示类别标识和名称字符串的步骤中还可以包括:
将属于同一所述预定类别的所述名称字符串按照所述第一预定字符的统一码的编码顺序排列。
在本实施方式中,所述名称字符串的第一预定字符可以对应有唯一的统一码。将属于同一预定类别的所述名称字符串进行排序时,可以按照所述第一预定字符的统一码的编码顺序排列。
具体的,由于所述第一预定字符的统一码的编码本身可为一个十六进制的数字,可以依照数字的大小顺序进行排列。例如可以按照所述第一预定字符的统一码由小到大的顺序对所述同一预定类别下的名称字符串进行排列。
在一个具体的实施方式中,例如对于C类别下的名称字符串:第一预定字符,例如“陈一”、“成二”、“蔡三”,可以根据其第一预定字符“蔡”、“陈”、“成”统一码由小到大的顺序的特点,将所述C类别下的名称字符串排列为“蔡三”、“陈一”、“成二”,实现了同一类别下,名称字符串的排序。
请参阅图9,在一个实施方式中,在所述第一预定字符的统一码相同时,所述方法还可以包括如下步骤。
步骤S261:获取所述名称字符串中第二预定字符。
步骤S263:将属于同一所述预定类别的所述名称字符串按照所述第二预定字符的统一码的编码顺序排列。
在本实施方式中,所述第一预定字符的统一码相同的情况,具体可表示所述名称字符串包含有相同的第一预定字符。
在本实施方式中,所述第二预定字符可以为所述名称字符串中,除了所述第一预定字符之外的一个字符或多个字符的组合。具体的,由于所述第二预定字符的统一码的编码本身为一个十六进制的数字,可以依照数字的大小顺序进行排列。例如可以按照所述第二预定字符的统一码由小到大的顺序对所述同一预定类别下的名称字符串进行排列。
在一个具体的实施方式中,当所述名称字符串都为姓名时,其可以表示包含多个姓氏相同的名字。例如,在W类别下,名称字符串包括:“王一”、“王二”、“王三”。分别获取所述第一预定字符的统一码时,发现其对应的统一码均相同。此时,进一步的可以获取除了所述第一预定字符之外第二字符的统一码。具体可获取的第二预定字符分别为“一”、“二”、“三”的统一码。在统一码字符集中,所述第二预定字符“一”、“二”、“三”的统一码的排序为“二”、“三”、“一”。对应的,可以将与所述第二预定字符相对应的名称字符串排列为“王二”、“王三”、“王一”,从而实现了,当第一预定字符相同时,对同一类别下的名称字符串排序。
请参阅图10,在一个实施方式中,在展示类别标识和名称字符串的步骤S26中还可以包括如下步骤。
步骤S260:获取所述名称字符串中第二预定字符的统一码。
步骤S262:将属于同一所述预定类别的所述名称字符串按照所述第二预定字符的统一码的编码顺序排列。
在本实施方式中,所述第二预定字符可以为所述名称字符串中,除了所述第一预定
字符之外的一个字符或多个字符的组合。具体的,由于所述第二预定字符的统一码的编码本身为一个十六进制的数字,可以依照数字的大小顺序进行排列。例如可以按照所述第二预定字符的统一码由小到大的顺序对所述同一预定类别下的名称字符串进行排列。
在一个具体的实施方式中,当所述名称字符串为姓名时,例如在C类别下,名称字符串包括:“陈一”、“成二”、“蔡三”。上述名称字符串的第一预定字符为“蔡”、“陈”、“成”;第二预定字符为“一”、“二”、“三”。当名称字符串直接按照所述第二预定字符的统一码进行排序时,由于第二预定字符为“一”、“二”、“三”对应的统一码由小到大的排序为“二”、“三”、“一”,因此,C类别下对应的名称字符串的排序为“成二”、“蔡三”、“陈一”。本实施方式通过直接根据第二预定字符的统一码对与其对应的名称字符串进行排序,对于第一预定字符相同的情况来说,减少了不必要的第一预定字符统一码比较,能够提高排序的效率。
在一个实施方式中,在获取名称数据的步骤S20中还可以包括:接收用户指定的第一预定字符。
在本实施方式中,在获取名称数据时,可以接收用户指定的第一预定字符。具体的,所述指定的第一预定字符可为所述名称字符串中的一个字符或多个字符的组合。所述指定的第一预定字符用于在所述名称字符串归至预定类别后,将属于同一预定类别名称字符串进行排序。所述指定的第一预定字符具体的可以为名称的姓氏列表,可以为地点的国别列表,可以为账户的银行类别列表等等,本申请在此并不作具体限定。
在一个具体的实施方式中,所述指定的第一预定字符为一个姓氏列表时,所述姓氏列表中的姓氏可以按照顺序排列好。例如姓氏列表中包括“Brown”、“Smith”、“White”等,其按照先后顺序排列为:“Brown”、“Smith”、“White”。当所述名称数据包括的名称字符串为:“Alice Brown”、“Ada Smith”、“Alma White”。根据所述指定排序字符中“Brown”、“Smith”、“White”的排列顺序,上述名称字符串排列先后顺序为“Alice Brown”、“Ada Smith”、“Alma White”。
请参阅图11,本申请实施方式还提供一种服务器200,其可以包括:数据获取模块20、统一码获取模块22、预定类别划分模块24。
数据获取模块10,用于获取名称数据;其中,所述名称数据包括有至少一个名称字符串。
在本实施方式中,服务器可以是具有数据处理能力和网络通讯功能的设备,例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境。当然,服务器也可以包括运行于上述设备中的软件。
在本实施方式中,所述名称数据可以预存于所述服务器中。当用户需要进行电子商务活动时,可以通过数据通讯模块从服务器端进行下载所述名称数据。或者,所述名称数据也可以由用户以输入的方式临时建立获得。此外,获取所述名称数据的方式还可以为其他方式,例如,接受其他客户端发送的名称数据等等,本申请在此并不作具体限定。
在本实施方式中,所述名称数据可以为用户在进行即时通讯、电子商务等交互活动时需要使用的名称集合。所述名称具体的可以为:姓名、昵称、公司名称、账户名称、地点名称等等,本申请在此并不作具体的限定。
在本实施方式中,所述名称数据包括有至少一个名称字符串。所述名称字符串可以为所述姓名、昵称、公司名称、账户名称、地点名称中的一个具体名字。具体的,所述名称字符串可以为具体的一个姓名,例如“王二小”。所述名称字符串也可以为具体的一个账户名称,例如某个银行的银行卡号:“622848440637874213”。所述名称字符串的形式具体可以为某种语言的至少一个字、词、词组等,或者可以为一种符号、数字、字母或者多种结合等,当然所述名称字符串还可以为其他形式,本申请在此并不作具体的限定。
统一码获取模块12,用于获取所述名称字符串中第一预定字符的统一码。
在本实施方式中,统一码用于为每种语言中的字符设定了统一并且唯一编码,以满足跨语言、跨平台进行文本转换、处理的要求。所述统一码具有一个字符集,其可以用预定进制的数字来映射这些字符,使得在所述统一码的字符集中的字符与每种语言中的字符存在一一对应关系。即一个统一码唯一对应有一个字符。所述预定进制的数字可以为十六进制,二进制等等,此处不作一一陈述。具体的,例如Unicode码为一种典型的统一码,其用十六进制数字0-0x10FFFF来映射各种语言的字符。如,中、日、韩CJK(Chinese Japanese Korean)的三种文字占用了Unicode中0x3000到0x9FFF的部分。Unicode目前普遍采用的是UCS-2规范编码,具体的,其用两个字节来编码一个字符。比如汉字“经”的编码是0x7ECF。由于字符编码一般用十六进制来表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制,2的16次方等于65536,所以UCS-2最多能编码65536个字符。
在本实施方式中,在所述客户端可以存储有统一字符集,所述统一字符集中可以包括字符、以及与字符相对应的统一码。此外,所述统一字符集也可以存储于服务器端,客户端可以通过通信模块与所述服务器端建立通信后,获取所述统一字符集中的相关字符以及与字符相对应的统一码。所述每个第一预定字符可以唯一对应有一个统一码。具体的,所述第一预定字符可以为所述名称字符串的首字符,也可以为所述名称字符串中
的首字符与第二字符的结合,也可以单独为第二字符,或者还可以是由用户预先指定的所述名称字符串中的某个预定字符。当然,所述第一预定字符并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在本实施方式中,由于所述第一预定字符可以唯一对应有一个统一码,根据所述第一预定字符,通过查找的方式或者通过所述第一预定字符与统一码的映射关系,可以获得所述名称字符串中第一预定字符的统一码。具体的,例如可以通过将所述第一预定字符转换为十六进制数字,然后在所述统一字符集中进行查找。若查找到在所述统一字符集中相同的十六进制数字,则可以唯一确定所述第一预定字符的统一码。或者,根据所述第一预定字符,通过字符与十六进制数字的映射关系,在所述统一字符集中进行查找,以获取所述名称字符串中第一预定字符的统一码。当然,所述获取的方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他方式的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
预定类别划分模块14,用于在本实施方式中,可以利用编程语言API(Application Programming Interface,应用程序编程接口)中的语言排序机制,根据语言的发音、拼写等特点,将所述第一预定字符的统一码进行划分,设定至少一个预定编码段。其中每个所述预定编码段可以对应设置为一个预定类别,或者多个预定编码段可以对应设置为同一个预定类别,进而将多种语言的文字进行归类至有限的类别。
由于一般情况下,统一编码并不按语言的发音等规律进行排列。为了使得预定编码段的划分符合用户语言习惯,可以利用排序器,例如Java中的collator,根据语言的发音等特点,将字符进行排序。进一步的,将排序后的字符对应的统一码划分为至少一个预定的编码段。具体的,所述排序器collator在进行排序时,能够根据语言的特点,比较两个字符的先后顺序,进而能够将统一字符集中的字符按照语言特点进行分段排序。例如,在Java语言标准库里面,对于中文,可以根据其发音,所有“啊”(a)发音的第一预定字符排在所有“吧”(ba)发音的第一预定字符的前面。所有“吧”(ba)发音的第一预定字符排在所有“擦”(ca)发音的第一预定字符的前面。以此类推,根据字符的发音将名称数据中的第一预定字符分为“a”至“z”26个预定编码段。
在本实施方式中,所述预定类别为多个名称字符串的集合。所述预定类别在数据结构上可以通过队列、数据栈、数组等方式实现。例如,当所述预定类别的数据结构方式为数组的数据结构方式时,可以将第一预定字符发音属于同一预定编码段的名称字符串存储于同一个数组下,以形成一个预定类别。例如,将“陈一”、“成二”、“蔡三”、“程四”存储于同一个数组下,以形成一个预定类别。当然,形成所述预定类别的数据结
构方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在一个具体的实施方式中,为了使得预定编码段的划分符合用户语言习惯,可以利用Java中的collator根据语言的发音、拼写等特点将第一预定字符对应的统一码按序排列,并分为至少一个预定编码段。当需要判断某个第一预定字符具体属于对应的某个预定编码段时,可以将所述第一预定字符与所述预定编码段的段首和/或段尾的统一码对应的字符比较。若该第一预定字符的顺序为位于所述预定编码段的段首字符以后,而位于段尾字符以前,或者位于下一个段首字符之前的顺序,则可以确定该第一预定字符属于此预定编码段。
此外,在划分预定编码段时,预定编码段段首和/或段尾统一码与预定类别之间可以形成有对应关系。请参看上述表1。当确定了预定编码段后,可以根据所述预定编码段与预定类别的对应关系,确定所述名称字符串的预定类别。
在本实施方式中,利用了现有的Java中的collator,实现了根据语言的发音、拼写等特点进行比较排序。当然,具体的排序方式并不限于上述描述,所属领域技术人员在本申请的技术精髓启发下,还可以作出其他方式的变更,例如选择现有的其他排序器或者根据排序功能自行进行编写等,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在本实施方式中,操作系统中可以集成有统一字符集,即每个字符对应的统一码可以从操作系统中获得。所述客户端中可以仅存储所述预定编码段的段首统一码,如此可以实现在统一码分段时,通过段首统一码,区分不同的预定编码段;或者是所述预定编码段的段首统一码和所述预定编码段的段尾段尾统一码。具体的,例如当所述预定编码段为26个时,对应的,所述客户端存储的为26个预定编码段的统一码,共26个;或者预定编码段的段首统一码和段尾的统一码,共52个。因此,相对于客户端来说,所需占用的存储空间较小。
在另一个具体的实施方式中,由于一般情况下,统一编码并不按每种语言的发音等规律进行排列。为了使得预定编码段的划分符合用户语言习惯,可以将第一预定字符对应的统一码根据语言的发音等特点对应一个索引值,根据所述索引值进行排序,进而可以将所述根据索引值排序后的统一码分为至少一个预定的编码段。
例如,在Java语言标准库里面,对于中文,可以根据其发音,给所述第一预定字符对应的统一码一个对应的索引值。所述索引值可以看成一个数字。比如“啊”(a),其索引值可能是1;而“吧”(ba),其索引值可能是10,那么所有“啊”(a)至“吧“(ba)
之间发音的汉字,它的索引值在1-10之间。
请参阅上述表2。针对每个预定编码段可以对应有一个预定类别。例如,编码段段首索引值为[1,10)对应的预定类别为A类别,即实现了将字符发音的首字母为a的字,例如“啊”、“安”等归至A类别中。编码段段首索引值为[10,20)对应的预定类别为B类别,即实现了将字符发音的首字母为b的字,例如“吧”、“被”等归至B类别中。以此类推,编制Z类别。从而将整个中文编码块划分至26个编码段,对应的26个预定类别。
在本实施方式中,通过将所述第一预定字符的统一码的索引值与预设编码段的段首索引值和/或段尾索引值进行查找比较的方式,可以确定所述第一预定字符对应的预定编码段。由于所述预定编码段对应有预定类别,因此可以将所述名称字符串划分至所述预定编码段对应的预定类别。
在一个具体的实施方式中,对于某个第一预定字符,将其对应的统一码的索引值和预定编码段首索引值和/或段尾索引值进行比较,进而确定所述第一预定字符所对应的预定编码段以及预定类别。请结合参阅上述表2。例如,如果某个第一预定字符的统一码对应的索引值大于等于所述1而小于10,则可以确定所述第一预定字符所对应的预定编码段和预定类别,进而可以将所述第一预定字符对应的所述名称字符串划分至所述预定编码段的A类别中。
在本实施方式中,操作系统中可以集成有统一字符集,即每个第一预定字符对应的统一码可以从操作系统中获得。所述客户端中可以仅存储的所述预定编码段的段首索引值,如此可以实现在统一码分段时,通过段首索引值和/或段尾索引值,区分不同的预定编码段。具体的,例如当所述预定编码段为26个时,对应的,所述客户端存储的为26个预定编码段的索引值,共26个;或者预定编码段的段首索引值和段尾的索引值,共52个。因此,相对于客户端来说,所需占用的存储空间较小。
当然,所述确定所述第一预定字符的统一码对应的预定编码段的方式并不限于上述描述。所属领域技术人员在本申请的技术精髓启示下,还可能做出其他方式的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
本申请服务器可以是本申请名称列表处理方法的一种硬件实施方式,可以实现本申请名称列表处理方法实施方式并达到方法实施方式的技术效果。
在一个实施方式中,至少一个所述预定编码段组成一个语言编码块;其中,不同所述语言编码块具有至少部分相同的预定类别;相应的,所述预定类别划分模块用于:在属于不同所述语言编码块的名称字符串所处的预定编码段对应的预定类别相同时,将所述名称字符串同划分至所述预定类别中,以实现多种语言的混排。
请参阅图12,在一个实施方式中,所述预定类别划分模块24包括:语言编码块确定单元240、预定编码段确定单元242。
语言编码块确定单元240,用于确定所述名称字符串中第一预定字符的统一码对应的语言编码块;
预定编码段确定单元242,用于在所述语言编码块中,确定所述第一预定字符的统一码所在的预定编码段。
本申请实施方式还提供一种服务器,其可以包括:处理器。
所述处理器用于获取名称数据;其中,所述名称数据包括有至少一个名称字符串;并用于获取所述名称字符串中第一预定字符的统一码;确定所述第一预定字符的统一码对应的预定编码段,将所述名称字符串划分至所述预定编码段对应的预定类别;其中,所述预定编码段的数量为至少一个,每个所述预定编码段对应一个预定类别。
在本实施方式中,所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本申请并不作限定。
本申请服务器可以是本申请名称列表处理方法的一种硬件实施方式,可以实现本申请名称列表处理方法实施方式并达到方法实施方式的技术效果。
本说明书中的上述各个实施方式均采用递进的方式描述,各个实施方式之间相同相似部分相互参照即可,每个实施方式重点说明的都是与其他实施方式不同之处。尤其对于客户端实施方式而言,由于其处理器执行的工作基本相似于方法实施方式,所以描述的比较简单,相关之处参见方法实施方式部分说明即可。
虽然通过实施方式描绘了本申请,在本申请技术精髓启示下,本领域技术人员可能对上述多个实施方式之间进行组合,也可以对本申请的实施方式进行变化,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请的保护范围内。