CN103514160B - 一种排序方法和移动设备 - Google Patents

一种排序方法和移动设备 Download PDF

Info

Publication number
CN103514160B
CN103514160B CN201210199405.3A CN201210199405A CN103514160B CN 103514160 B CN103514160 B CN 103514160B CN 201210199405 A CN201210199405 A CN 201210199405A CN 103514160 B CN103514160 B CN 103514160B
Authority
CN
China
Prior art keywords
character
code value
escape
character string
string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210199405.3A
Other languages
English (en)
Other versions
CN103514160A (zh
Inventor
曹庆峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Device Co Ltd
Original Assignee
Huawei Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Device Co Ltd filed Critical Huawei Device Co Ltd
Priority to CN201210199405.3A priority Critical patent/CN103514160B/zh
Publication of CN103514160A publication Critical patent/CN103514160A/zh
Application granted granted Critical
Publication of CN103514160B publication Critical patent/CN103514160B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90348Query processing by searching ordered data, e.g. alpha-numerically ordered data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Abstract

本发明的实施例提供一种排序方法和移动设备,涉及通信领域,能够符合不同国家用户的使用习惯。其方法为:将第一字符串的第i个字符的统一码值进行转义,将第二字符串的第i个字符的统一码值进行转义,转义后的码值包括所述第i个字符对应的基准字符的统一码值和所述第i个字符的统一码值与所述第i个字符对应的基准字符的统一码值的差值;当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值不相等时,根据所述第一字符串的第i个字符的转义后的码值和所述第二字符串的第i个字符的转义后的码值的大小来排列所述第一字符串和所述第二字符串的顺序;否则,将i加1后再次执行上述步骤。本发明实施例用于字符串排序。

Description

一种排序方法和移动设备
技术领域
本发明涉及计算机领域,尤其涉及一种排序方法和移动设备。
背景技术
目前对于字符串的排序有两种方法。第一种是使用Unicode(统一码)排序,即按照字符串中字符的Unicode值进行排序;第二种是对于不同的语言使用不同的字符集进行排序,比如:中文简体是将字符转化为GBK(Guo-Biao KuoZhan,国家标准扩展码)编码,然后按照字符在GBK字符集中的值进行排序。
但是,对于多种语言混合的字符串,没有一种很好的解决办法。例如,在土耳其文和英文混编时,Unicode排序可以照顾到英文的排序,但是无法兼顾土耳其语。土耳其语是由字符A~Z以及土耳其的特色字母混编,在土耳其语中字符应该在字符G之后的位置上,但是在和英文混编时,土耳其语中的字符会放在字符Z之后。这样土耳其语用户在使用时就会有很多不便,例如,在电子词典中查询词汇时,开头的单词常常位于Z开头的单词之后,而实际上,开头的单词位于G开头的单词之后更为符合土耳其人的习惯。因此,现有的字符串排序方法无法兼顾除英语外其他语言的字符串排序,所以无法符合不同国家用户的使用习惯。
发明内容
本发明的实施例提供一种排序方法和移动设备,能够同时兼顾多种语言的字符串的排序,从而符合不同国家用户的使用习惯。
本发明的实施例采用如下技术方案:
一方面,提供一种排序方法,所述方法包括:
将第一字符串的第i个字符的统一码值进行转义,将第二字符串的第i个字符的统一码值进行转义,转义后的码值包括所述第i个字符对应的基准字符的统一码值和所述第i个字符的统一码值与所述第i个字符对应的基准字符的统一码值的差值;
将所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值进行比较;
当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值不相等时,根据所述第一字符串的第i个字符的转义后的码值和所述第二字符串的第i个字符的转义后的码值的大小来排列所述第一字符串和所述第二字符串的顺序;
当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值相等时,将所述第一字符串的第i+1个字符的统一码值进行转义,将所述第二字符串的第i+1个字符的统一码值进行转义,并将所述第一字符串的第i+1个字符的转义后的码值与所述第二字符串的第i+1个字符转义后的码值进行比较,直至排列出所述第一字符串和所述第二字符串的顺序;
其中,i的初始值为1。
另一方面,提供一种移动设备,所述移动设备包括:
转义单元,用于将第一字符串的第i个字符的统一码值进行转义,将第二字符串的第i个字符的统一码值进行转义,转义后的码值包括所述第i个字符对应的基准字符的统一码值和所述第i个字符的统一码值与所述第i个字符对应的基准字符的统一码值的差值;
比较单元,用于将所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值进行比较;
排序单元,用于当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值不相等时,根据所述第一字符串的第i个字符的转义后的码值和所述第二字符串的第i个字符的转义后的码值的大小来排列所述第一字符串和所述第二字符串的顺序;
所述转义单元还用于,当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值相等时,将所述第一字符串的第i+1个字符的统一码值进行转义,将所述第二字符串的第i+1个字符的统一码值进行转义,以便所述比较单元将所述第一字符串的第i+1个字符的转义后的码值与所述第二字符串的第i+1个字符转义后的码值进行比较,直至所述排序单元排列出所述第一字符串和所述第二字符串的顺序;
其中,i的初始值为1。
本发明的实施例提供一种排序方法和移动设备,通过将字符串中字符的统一码值进行转义,并根据转义后的码值进行排序,能够同时兼顾多种语言的字符串的排序,从而符合不同国家用户的使用习惯。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种排序方法的流程示意图;
图2为本发明另一实施例提供的一种排序方法的流程示意图;
图3为本发明实施例提供的一种移动设备的结构示意图;
图4为本发明实施例提供的另一种移动设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种排序方法,如图1所示包括:
S101、将第一字符串的第i个字符的统一码值进行转义,将第二字符串的第i个字符的统一码值进行转义,转义后的码值包括第i个字符对应的基准字符的统一码值和第i个字符的统一码值与第i个字符对应的基准字符的统一码值的差值。
S102、将第一字符串的第i个字符的转义后的码值与第二字符串的第i个字符的转义后的码值进行比较。
S103、当第一字符串的第i个字符的转义后的码值与第二字符串的第i个字符的转义后的码值不相等时,根据第一字符串的第i个字符的转义后的码值和第二字符串的第i个字符的转义后的码值的大小来排列第一字符串和第二字符串的顺序。
S104、当第一字符串的第i个字符的转义后的码值与第二字符串的第i个字符的转义后的码值相等时,将第一字符串的第i+1个字符的统一码值进行转义,将第二字符串的第i+1个字符的统一码值进行转义,并将第一字符串的第i+1个字符的转义后的码值与第二字符串的第i+1个字符转义后的码值进行比较,直至排列出第一字符串和第二字符串的顺序。
其中,i的初始值为1。
本发明的实施例提供一种排序方法,通过将字符串中字符的统一码值进行转义,并根据转义后的码值进行排序,能够同时兼顾多种语言的字符串的排序,从而符合不同国家用户的使用习惯。
本发明的另一实施例提供一种排序方法,如图2所示,包括:
S201、将第一字符串的第i个字符的Unicode(统一码)值进行转义,将第二字符串的第i个字符的Unicode值进行转义。
上述的第一字符串可以是一种语言或多种语言的字符串,第二字符串可以是一种语言或多种语言的字符串,例如第一字符串可以是一个英语单词,也可以是一个西班牙语单词或土耳其语单词,同样的第二字符串也可以是一个英语单词,还可以是一个西班牙语单词或土耳其语单词。无论第一字符串和第二字符串是哪国语言的字符串,进行字符串排序的方法完全相同。
需要说明的是:土耳其语共有29个字母,除了包括25个英文字母之外,还包括以下以为例进行说明,西班牙语共有27个字母,除了包括26个英文字母外,还包括除此之外还包括重音标识字母以下以为例进行说明。
在字符串中的每个字符都有一个Unicode值,例如大写的英文字母A的Unicode值为0x0041,西班牙语中的的Unicode值为0x00C1,大写的英文字母G的Unicode值为0x0047,土耳其语中的的Unicode值为0x011E,而大写英文字母Z的Unicode值为0x0060。而按照这种两字节的Unicode值来排列字符,字符都会排列在字符Z之后,不符合西班牙用户和土耳其用户的使用习惯。
因此,为了符合所有用户的习惯,需要将字符和字符A放在一起,将字符和G放在一起。
故首先,需要将第一字符串与第二字符串的第i个字符进行转义处理,将两字节码值转义为三字节码值或者四字节码值。当然,i起始值为1,也就是要从第一字符串和第二字符串的的第1个字符开始转义。
以四字节码值为例,该四字节码值的前两字节为高位,后两字节为低位。其中,每个字符的四字节码值的高位为该字符对应的基准字符的Unicode值,四字节码值的低位为该字符的Unicode值和该字符对应的基准字符的Unicode值的差值。
其中,当字符为非英文字符时,该字符对应的基准字符为该字符对应的英文大写字母;当字符为英文小写字母时,该字符对应的基准字符为该字符对应的英文大写字母;当字符为英文大写字母时,该字符对应的基准字符为该字符自身;当字符为标点符号时,该字符对应的基准字符为该字符自身。
例如,字符对应的基准字符为字符A,字符对应的基准字符为字符G,字符a对应的基准字符为字符A,而字符A对应的基准字符仍为字符A,字符“]”对应的基准字符仍为字符“]”。
而后,根据字符与字符A的Unicode值就可以得到字符与字符A的Unicode值的差值为0x0080,根据字符与字符G的Unicode值就可以得到字符与字符G的Unicode值的差值为0x00D7,故字符转义后的Unicode值就为0x0041 0x0080,字符转义后的Unicode值就为0x0047 0x00D7,而字符A转义后的Unicode值就为0x0041 0x0000,字符G转义后的Unicode值就为0x0047 0x0000。
S202、将第一字符串的第i个字符的转义后的码值与第二字符串的第i个字符的转义后的码值进行比较。
具体的,可以将第一字符串的第i个字符的转义后的码值减去第二字符串的第i个字符转义后的码值;
若第一字符串的第i个字符的转义后的码值减去第二字符串的第i个字符转义后的码值后所得的差值为正数,则判定第一字符串的第i个字符的转义后的码值大于第二字符串的第i个字符转义后的码值,此时执行步骤S203;
若第一字符串的第i个字符的转义后的码值减去第二字符串的第i个字符转义后的码值后所得的差值为负数,则判定第一字符串的第i个字符的转义后的码值小于第二字符串的第i个字符转义后的码值,此时执行步骤S203;
若第一字符串的第i个字符的转义后的码值减去第二字符串的第i个字符转义后的码值后所得的差值为零,则判定第一字符串的第i个字符的转义后的码值等于第二字符串的第i个字符转义后的码值,此时,将i加1后,再次执行步骤S201~步骤S202。
S203、根据第一字符串的第i个字符的转义后的码值和第二字符串的第i个字符的转义后的码值的大小来排列第一字符串和第二字符串的顺序。
具体的,当第一字符串的第i个字符的转义后的码值与第二字符串的第i个字符的转义后的码值不相等时,根据步骤S202比较出的第一字符串的第i个字符的转义后的码值和第二字符串的第i个字符的转义后的码值的大小来排列第一字符串和第二字符串的顺序。
若第一字符串的第i个字符的转义后的码值大于第二字符串的第i个字符转义后的码值,则将第一字符串排列在所述第二字符串之后;否则;
若第一字符串的第i个字符的转义后的码值小于第二字符串的第i个字符转义后的码值,则将第一字符串排列在第二字符串之前。
综上所述,对两个字符串进行排序,首先将第一字符串的第1个字符和将第二字符串的第1个字符进行转义,而后将第一字符串的第1个字符转义后的码值与第二字符串的第1个字符转义后的码值进行比较,若两个字符串的第1个字符转义后的码值不相等,则将第1个字符转义后的码值较小的那个字符串排列在前面;若两个字符串的第1个字符转义后的码值相等,则需要进入下一轮比较,即将第一字符串的第2个字符和将第二字符串的第2个字符进行转义,并将两个字符串的第2个字符的转以后的码值进行比较,并根据比较结果排列第一字符串和第二字符串,若两个字符串的第2个字符转义后的码值仍然相等,则需要将第一字符串的第3个字符和将第二字符串的第3个字符进行转义并进行比较,以此类推,直至排列出第一字符串和第二字符串的顺序为止。
例如,假设第一字符串为西班牙语单词(玛瑙),第二字符串为西班牙语单词Aceptar(采纳),首先将由第一字符串和第二字符串的第1个符进行转义,也就是将字符和字符A进行转义。由步骤S201可知,字符转义后的Unicode值就为0x0041 0x0080,字符A转义后的Unicode值就为0x0041 0x0000,用0x0041 0x0080减去0x0041 0x0000为正数,因此转义后的Unicode值大于A转义后的Unicode值,故将第一字符串排列在第二字符串Aceptar之后。
再假设第一字符串为西班牙语单词而第二字符串为西班牙语单词Bodega(酒店),字符B转义后的Unicode值就为0x00420x0000,用0x0041 0x0080减去0x00420x0000为负数,故字符转义后的Unicode值小于字符B转义后的Unicode值,故将第一字符串为排列在第二字符串Bodega之前,也就是说排列在Aceptar之后,Bodega之前,可见,采用上述方法排列后的结果相对于现有技术中开头的字符排在Z开头的单词之后更符合西班牙语用户的习惯。
又例如,不同语种字符串的比较,假设第一字符串为西班牙语单词Aceptar,第二字符串为英文单词Accept(接受),由于第一字符串和第二字符串的第1个字符为A,转义后的Unicode值都为0x00410x0000,故比较第1个字符无法排列第一字符串和第二字符串,第一字符串和第二字符串的第2个字符为c,转义后的Unicode值都为0x0043 0x0020,故比较第2个字符也无法排列第一字符串和第二字符串,所以还需继续比较,第一字符串的第3个字符为e,转义后的Unicode值为0x0045 0x0020,第二字符串第3个字符c,转义后的Unicode值都为0x0043 0x0020,用0x0045 0x0020减去0x0043 0x0020为正数,故将第一字符串Aceptar排列在第二字符串Accept之后。
采用上述方法两两比较,用户终端就可以将混编字符库中的所有字符串进行排序,例如采用上述方法可以将混编语言的字母顺序或者单词顺序进行重新排列。
示例性的,如表1所示为英语、西班牙语以及土耳其语的大小写字母以及标点符号的重新排序结果。
表1
如表1所示,由于在一般情况下单词或者人名为首字母大写其余为小写字母,故将小写字符转义后重新排序的好处是更加符合单词或者人名的排序习惯。
进一步的,还可以加入德语、法语或者其他语言的字母并进行重新排序,具体加入以上的一种或几种语言可以根据实际需要来设置,本实施例不在限定,排序方法与上述步骤S201~S203完全相同,不再赘述。
本发明的实施例提供一种排序方法,通过将字符串中字符的统一码值进行转义,并根据转义后的码值进行排序,能够同时兼顾多种语言的字符串的排序,从而符合不同国家用户的使用习惯。
本发明实施例还提供一种移动设备01,如图3所示,该移动设备01包括:
转义单元011,用于将第一字符串的第i个字符的统一码值进行转义,将第二字符串的第i个字符的统一码值进行转义,转义后的码值包括第i个字符对应的基准字符的统一码值和第i个字符的统一码值与第i个字符对应的基准字符的统一码值的差值。
比较单元012,用于将第一字符串的第i个字符的转义后的码值与第二字符串的第i个字符的转义后的码值进行比较。
排序单元013,用于当第一字符串的第i个字符的转义后的码值与第二字符串的第i个字符的转义后的码值不相等时,根据第一字符串的第i个字符的转义后的码值和第二字符串的第i个字符的转义后的码值的大小来排列第一字符串和第二字符串的顺序。
转义单元011还用于,当第一字符串的第i个字符的转义后的码值与第二字符串的第i个字符的转义后的码值相等时,将第一字符串的第i+1个字符的统一码值进行转义,将第二字符串的第i+1个字符的统一码值进行转义,以便比较单元012将第一字符串的第i+1个字符的转义后的码值与第二字符串的第i+1个字符转义后的码值进行比较,直至排序单元013排列出第一字符串和第二字符串的顺序。
其中,i的初始值为1。
进一步的,转义单元011具体用于:
将第一字符串的第i个字符的统一码值由两字节码值转义为三字节码值或四字节码值;
将第二字符串的第i个字符的统一码值由两字节码值转义为三字节码值或四字节码值;
其中,三字节码值或者四字节码值的高位为第i个字符对应的基准字符的统一码值;三字节码值或者四字节码值的低位为第i个字符的统一码值与第i个字符对应的基准字符的统一码值的差值。
值得注意的是,由于上述第i个字符可能为不同种类的字符,故该第i个字符对应的基准字符包括多种情况:
当第i个字符为非英文字符时,第i个字符对应的基准字符为字符对应的英文大写字母;或
当第i个字符为英文小写字母时,第i个字符对应的基准字符为字符对应的英文大写字母;或
当第i个字符为英文大写字母时,第i个字符对应的基准字符为第i个字符自身;或
当第i个字符为标点符号时,第i个字符对应的基准字符为第i个字符自身。
示例性的,字符对应的基准字符为字符A,字符对应的基准字符为字符G,字符a对应的基准字符为字符A,而字符A对应的基准字符仍为字符A,字符“]”对应的基准字符仍为字符“]”。
而后,根据字符与字符A的统一码值就可以得到字符与字符A的统一码值的差值为0x0080,根据字符与字符G的统一码值就可以得到字符与字符G的统一码值的差值为0x00D7,故字符转义后的统一码值就为0x0041 0x0080,字符转义后的统一码值就为0x0047 0x00D7,而字符A转义后的统一码值就为0x0041 0x0000,字符G转义后的统一码值就为0x0047 0x0000。
更进一步的,如图4所示,比较单元012可以至少包括以下任一种单元:
计算单元0121,用于将第一字符串的第i个字符的转义后的码值减去第二字符串的第i个字符转义后的码值;
判定单元0122,用于若第一字符串的第i个字符的转义后的码值减去第二字符串的第i个字符转义后的码值后所得的差值为正数,则判定第一字符串的第i个字符的转义后的码值大于第二字符串的第i个字符转义后的码值;若第一字符串的第i个字符的转义后的码值减去第二字符串的第i个字符转义后的码值后所得的差值为负数,则判定第一字符串的第i个字符的转义后的码值小于第二字符串的第i个字符转义后的码值;若第一字符串的第i个字符的转义后的码值减去第二字符串的第i个字符转义后的码值后所得的差值为零,则判定第一字符串的第i个字符的转义后的码值等于第二字符串的第i个字符转义后的码值。
排序单元013可以具体用于:
若第一字符串的第i个字符的转义后的码值大于第二字符串的第i个字符转义后的码值,则将第一字符串排列在第二字符串之后;
若第一字符串的第i个字符的转义后的码值小于第二字符串的第i个字符转义后的码值,则将第一字符串排列在第二字符串之前。
上述移动设备01包括但不限于手机、便携设备、PDA (Personal DigitalAssistant,个人数字助理)、电子阅读器、电子书、音频播放器、音视频播放器、笔记本电脑、平板电脑等。
本发明的实施例提供一种移动设备,通过将字符串中字符的统一码值进行转义,并根据转义后的码值进行排序,能够同时兼顾多种语言的字符串的排序,从而符合不同国家用户的使用习惯。
另外,在本发明各个实施例中的移动设备01的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。且上述的各单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,平板电脑,或者智能手机等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种排序方法,其特征在于,所述方法包括:
将第一字符串的第i个字符的统一码值进行转义,将第二字符串的第i个字符的统一码值进行转义,转义后的码值包括所述第i个字符对应的基准字符的统一码值和所述第i个字符的统一码值与所述第i个字符对应的基准字符的统一码值的差值;
将所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值进行比较;
当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值不相等时,根据所述第一字符串的第i个字符的转义后的码值和所述第二字符串的第i个字符的转义后的码值的大小来排列所述第一字符串和所述第二字符串的顺序;
当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值相等时,将所述第一字符串的第i+1个字符的统一码值进行转义,将所述第二字符串的第i+1个字符的统一码值进行转义,并将所述第一字符串的第i+1个字符的转义后的码值与所述第二字符串的第i+1个字符转义后的码值进行比较,直至排列出所述第一字符串和所述第二字符串的顺序;
其中,i的初始值为1。
2.根据权利要求1所述的方法,其特征在于,所述将第一字符串的第i个字符的统一码值进行转义,将第二字符串的第i个字符的统一码值进行转义包括:
将所述第一字符串的第i个字符的统一码值由两字节码值转义为三字节码值或四字节码值;
将所述第二字符串的第i个字符的统一码值由两字节码值转义为三字节码值或四字节码值;
其中,所述三字节码值或者所述四字节码值的高位为所述第i个字符对应的基准字符的统一码值;所述三字节码值或者所述四字节码值的低位为所述第i个字符的统一码值与所述第i个字符对应的基准字符的统一码值的差值。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值进行比较包括:
将所述第一字符串的第i个字符的转义后的码值减去所述第二字符串的第i个字符转义后的码值;
若所述第一字符串的第i个字符的转义后的码值减去所述第二字符串的第i个字符转义后的码值后所得的差值为正数,则判定所述第一字符串的第i个字符的转义后的码值大于所述第二字符串的第i个字符转义后的码值;
若所述第一字符串的第i个字符的转义后的码值减去所述第二字符串的第i个字符转义后的码值后所得的差值为负数,则判定所述第一字符串的第i个字符的转义后的码值小于所述第二字符串的第i个字符转义后的码值;
若所述第一字符串的第i个字符的转义后的码值减去所述第二字符串的第i个字符转义后的码值后所得的差值为零,则判定所述第一字符串的第i个字符的转义后的码值等于所述第二字符串的第i个字符转义后的码值。
4.根据权利要求1所述的方法,其特征在于,所述当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值不相等时,根据所述第一字符串的第i个字符的转义后的码值和所述第二字符串的第i个字符的转义后的码值的大小来排列所述第一字符串和所述第二字符串的顺序包括:
若所述第一字符串的第i个字符的转义后的码值大于所述第二字符串的第i个字符转义后的码值,则将所述第一字符串排列在所述第二字符串之后;
若所述第一字符串的第i个字符的转义后的码值小于所述第二字符串的第i个字符转义后的码值,则将所述第一字符串排列在所述第二字符串之前。
5.根据权利要求1所述的方法,其特征在于,所述第i个字符对应的基准字符包括:
当所述第i个字符为非英文字符时,所述第i个字符对应的基准字符为所述字符对应的英文大写字母;或
当所述第i个字符为英文小写字母时,所述第i个字符对应的基准字符为所述字符对应的英文大写字母;或
当所述第i个字符为英文大写字母时,所述第i个字符对应的基准字符为所述第i个字符自身;或
当所述第i个字符为标点符号时,所述第i个字符对应的基准字符为所述第i个字符自身。
6.一种移动设备,其特征在于,所述移动设备包括:
转义单元,用于将第一字符串的第i个字符的统一码值进行转义,将第二字符串的第i个字符的统一码值进行转义,转义后的码值包括所述第i个字符对应的基准字符的统一码值和所述第i个字符的统一码值与所述第i个字符对应的基准字符的统一码值的差值;
比较单元,用于将所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值进行比较;
排序单元,用于当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值不相等时,根据所述第一字符串的第i个字符的转义后的码值和所述第二字符串的第i个字符的转义后的码值的大小来排列所述第一字符串和所述第二字符串的顺序;
所述转义单元还用于,当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值相等时,将所述第一字符串的第i+1个字符的统一码值进行转义,将所述第二字符串的第i+1个字符的统一码值进行转义,以便所述比较单元将所述第一字符串的第i+1个字符的转义后的码值与所述第二字符串的第i+1个字符转义后的码值进行比较,直至所述排序单元排列出所述第一字符串和所述第二字符串的顺序;
其中,i的初始值为1。
7.根据权利要求6所述的移动设备,其特征在于,所述转义单元具体用于:
将第一字符串的第i个字符的统一码值由两字节码值转义为三字节码值或四字节码值;
将第二字符串的第i个字符的统一码值由两字节码值转义为三字节码值或四字节码值;
其中,所述三字节码值或者所述四字节码值的高位为所述第i个字符对应的基准字符的统一码值;所述三字节码值或者四字节码值的低位为所述第i个字符的统一码值与所述第i个字符对应的基准字符的统一码值的差值。
8.根据权利要求6或7所述的移动设备,其特征在于,所述比较单元至少包括以下任一种单元:
计算单元,用于将所述第一字符串的第i个字符的转义后的码值减去所述第二字符串的第i个字符转义后的码值;
判定单元,用于若所述第一字符串的第i个字符的转义后的码值减去所述第二字符串的第i个字符转义后的码值后所得的差值为正数,则判定所述第一字符串的第i个字符的转义后的码值大于所述第二字符串的第i个字符转义后的码值;若所述第一字符串的第i个字符的转义后的码值减去所述第二字符串的第i个字符转义后的码值后所得的差值为负数,则判定所述第一字符串的第i个字符的转义后的码值小于所述第二字符串的第i个字符转义后的码值;若所述第一字符串的第i个字符的转义后的码值减去所述第二字符串的第i个字符转义后的码值后所得的差值为零,则判定所述第一字符串的第i个字符的转义后的码值等于所述第二字符串的第i个字符转义后的码值。
9.根据权利要求6所述的移动设备,其特征在于,所述排序单元具体用于:
若所述第一字符串的第i个字符的转义后的码值大于所述第二字符串的第i个字符转义后的码值,则将所述第一字符串排列在所述第二字符串之后;
若所述第一字符串的第i个字符的转义后的码值小于所述第二字符串的第i个字符转义后的码值,则将所述第一字符串排列在所述第二字符串之前。
10.根据权利要求6所述的移动设备,其特征在于,所述第i个字符对应的基准字符包括:
当所述第i个字符为非英文字符时,所述第i个字符对应的基准字符为所述字符对应的英文大写字母;或
当所述第i个字符为英文小写字母时,所述第i个字符对应的基准字符为所述字符对应的英文大写字母;或
当所述第i个字符为英文大写字母时,所述第i个字符对应的基准字符为所述第i个字符自身;或
当所述第i个字符为标点符号时,所述第i个字符对应的基准字符为所述第i个字符自身。
CN201210199405.3A 2012-06-15 2012-06-15 一种排序方法和移动设备 Active CN103514160B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210199405.3A CN103514160B (zh) 2012-06-15 2012-06-15 一种排序方法和移动设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210199405.3A CN103514160B (zh) 2012-06-15 2012-06-15 一种排序方法和移动设备

Publications (2)

Publication Number Publication Date
CN103514160A CN103514160A (zh) 2014-01-15
CN103514160B true CN103514160B (zh) 2017-04-12

Family

ID=49896901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210199405.3A Active CN103514160B (zh) 2012-06-15 2012-06-15 一种排序方法和移动设备

Country Status (1)

Country Link
CN (1) CN103514160B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810279B (zh) * 2014-02-18 2018-09-14 天津松下汽车电子开发有限公司 一种混合字段的排序方法及装置
CN108702407A (zh) * 2016-01-27 2018-10-23 阿里巴巴集团控股有限公司 名称列表展示、处理方法及客户端、服务器
CN107784082B (zh) * 2017-09-29 2020-09-25 东软集团股份有限公司 一种排序方法及装置
CN109522459B (zh) * 2018-12-07 2022-02-11 天津字节跳动科技有限公司 指定任务联系人的方法、装置、计算机设备和存储介质
CN110020954B (zh) * 2019-03-26 2023-09-05 创新先进技术有限公司 一种收益分配方法、装置及计算机设备
CN110287147B (zh) * 2019-06-27 2022-08-19 北京奇艺世纪科技有限公司 一种字符串排序方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441637A (zh) * 2007-11-22 2009-05-27 国际商业机器公司 对已排序的字符串序列再排序的方法及装置
CN101459712A (zh) * 2009-01-05 2009-06-17 深圳华为通信技术有限公司 一种电话本排序方法和手机设备
CN101751416A (zh) * 2008-11-28 2010-06-23 中国科学院计算技术研究所 一种对字符串排序和查找的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050251519A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation Efficient language-dependent sorting of embedded numerics

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441637A (zh) * 2007-11-22 2009-05-27 国际商业机器公司 对已排序的字符串序列再排序的方法及装置
CN101751416A (zh) * 2008-11-28 2010-06-23 中国科学院计算技术研究所 一种对字符串排序和查找的方法
CN101459712A (zh) * 2009-01-05 2009-06-17 深圳华为通信技术有限公司 一种电话本排序方法和手机设备

Also Published As

Publication number Publication date
CN103514160A (zh) 2014-01-15

Similar Documents

Publication Publication Date Title
CN103514160B (zh) 一种排序方法和移动设备
CN101556508A (zh) 一种输入法中候选词的生成方法、装置、系统及设备
CN101950285A (zh) 利用统计学方法对汉字的本国语读音串转换系统及其方法
CN101459712A (zh) 一种电话本排序方法和手机设备
KR102182672B1 (ko) 다국어 통합 자음 패턴 검색 방법 및 그 장치
WO2016197265A1 (zh) 一种输入生僻字的方法
US20110298719A1 (en) Method and apparatus for inputting chinese characters
US20050251519A1 (en) Efficient language-dependent sorting of embedded numerics
CN110619112A (zh) 用于汉字的读音标注方法、装置、电子设备及存储介质
CN100498662C (zh) 一种元拼拼音汉字输入方法
CN101630309A (zh) 一种具有容错功能的文字处理系统及方法
CN102053955B (zh) 一种符号输入的方法和系统
Lehal Design and implementation of Punjabi spell checker
CN101349946A (zh) 数字形声码中文输入法和键盘
Afzal et al. Urdu computing standards: development of Urdu Zabta Takhti (UZT) 1.01
CN105487684B (zh) 拼音汉字字符的输出方法和拼音汉字字符的输出装置
CN1269542A (zh) 联想汉字输入系统
CN103984420A (zh) 一种基于拼音的藏文智能输入法
CN106598689A (zh) 一种中文通用编码方法
CN107943322A (zh) 一种用于汉字拼音输入法的键盘及一种汉字拼音输入法
CN102279653A (zh) 一种用于输入中文的键盘
Wu et al. Computer processing of Chinese characters: An overview of two decades' research and development
CN104182060A (zh) 新笔画汉字输入法
CN107066104B (zh) 电脑汉英互读互译键盘最佳键位
CN1836199B (zh) 以词为单位的字符输入方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171108

Address after: Metro Songshan Lake high tech Industrial Development Zone, Guangdong Province, Dongguan City Road 523808 No. 2 South Factory (1) project B2 -5 production workshop

Patentee after: HUAWEI terminal (Dongguan) Co., Ltd.

Address before: 518129 Longgang District, Guangdong, Bantian HUAWEI base B District, building 2, building No.

Patentee before: Huawei Device Co., Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 523808 Southern Factory Building (Phase I) Project B2 Production Plant-5, New Town Avenue, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee after: Huawei Device Co., Ltd.

Address before: 523808 Southern Factory Building (Phase I) Project B2 Production Plant-5, New Town Avenue, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee before: HUAWEI terminal (Dongguan) Co., Ltd.