【技术实现步骤摘要】
一种排序方法和移动设备
本专利技术涉及计算机领域,尤其涉及一种排序方法和移动设备。
技术介绍
目前对于字符串的排序有两种方法。第一种是使用Unicode(统一码)排序,即按照字符串中字符的Unicode值进行排序;第二种是对于不同的语言使用不同的字符集进行排序,比如:中文简体是将字符转化为GBK(Guo-BiaoKuoZhan,国家标准扩展码)编码,然后按照字符在GBK字符集中的值进行排序。但是,对于多种语言混合的字符串,没有一种很好的解决办法。例如,在土耳其文和英文混编时,Unicode排序可以照顾到英文的排序,但是无法兼顾土耳其语。土耳其语是由字符A~Z以及土耳其的特色字母混编,在土耳其语中字符应该在字符G之后的位置上,但是在和英文混编时,土耳其语中的字符会放在字符Z之后。这样土耳其语用户在使用时就会有很多不便,例如,在电子词典中查询词汇时,开头的单词常常位于Z开头的单词之后,而实际上,开头的单词位于G开头的单词之后更为符合土耳其人的习惯。因此,现有的字符串排序方法无法兼顾除英语外其他语言的字符串排序,所以无法符合不同国家用户的使用习惯。
技术实现思路
本专利技术的实施例提供一种排序方法和移动设备,能够同时兼顾多种语言的字符串的排序,从而符合不同国家用户的使用习惯。本专利技术的实施例采用如下技术方案:一方面,提供一种排序方法,所述方法包括:将第一字符串的第i个字符的统一码值进行转义,将第二字符串的第i个字符的统一码值进行转义,转义后的码值包括所述第i个字符对应的基准字符的统一码值和所述第i个字符的统一码值与所述第i个字符对应的基准字符的统一码值的差值;将所 ...
【技术保护点】
一种排序方法,其特征在于,所述方法包括:将第一字符串的第i个字符的统一码值进行转义,将第二字符串的第i个字符的统一码值进行转义,转义后的码值包括所述第i个字符对应的基准字符的统一码值和所述第i个字符的统一码值与所述第i个字符对应的基准字符的统一码值的差值;将所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值进行比较;当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值不相等时,根据所述第一字符串的第i个字符的转义后的码值和所述第二字符串的第i个字符的转义后的码值的大小来排列所述第一字符串和所述第二字符串的顺序;当所述第一字符串的第i个字符的转义后的码值与所述第二字符串的第i个字符的转义后的码值相等时,将所述第一字符串的第i+1个字符的统一码值进行转义,将所述第二字符串的第i+1个字符的统一码值进行转义,并将所述第一字符串的第i+1个字符的转义后的码值与所述第二字符串的第i+1个字符转义后的码值进行比较,直至排列出所述第一字符串和所述第二字符串的顺序;其中,i的初始值为1。
【技术特征摘要】
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个字符对...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。