亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種排序方法和移動設(shè)備的制作方法

文檔序號:6486256閱讀:234來源:國知局
一種排序方法和移動設(shè)備的制作方法
【專利摘要】本發(fā)明的實施例提供一種排序方法和移動設(shè)備,涉及通信領(lǐng)域,能夠符合不同國家用戶的使用習(xí)慣。其方法為:將第一字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將第二字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,轉(zhuǎn)義后的碼值包括所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值和所述第i個字符的統(tǒng)一碼值與所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值的差值;當(dāng)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值不相等時,根據(jù)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值和所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值的大小來排列所述第一字符串和所述第二字符串的順序;否則,將i加1后再次執(zhí)行上述步驟。本發(fā)明實施例用于字符串排序。
【專利說明】一種排序方法和移動設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種排序方法和移動設(shè)備。
【背景技術(shù)】
[0002]目前對于字符串的排序有兩種方法。第一種是使用Unicode(統(tǒng)一碼)排序,即按照字符串中字符的Unicode值進(jìn)行排序;第二種是對于不同的語言使用不同的字符集進(jìn)行排序,比如:中文簡體是將字符轉(zhuǎn)化為GBK(Guo-Biac) KuoZhan,國家標(biāo)準(zhǔn)擴(kuò)展碼)編碼,然后按照字符在GBK字符集中的值進(jìn)行排序。
[0003]但是,對于多種語言混合的字符串,沒有一種很好的解決辦法。例如,在土耳其文和英文混編時,Unicode排序可以照顧到英文的排序,但是無法兼顧土耳其語。土耳其語是由字符A?Z以及土耳其的特色字母混編,在土耳其語中字符0應(yīng)該在字符G之后的位置上,但是在和英文混編時,土耳其語中的字符0會放在字符Z之后。這樣土耳其語用戶在使用時就會有很多不便,例如,在電子詞典中查詢詞匯時,0開頭的單詞常常位于Z開頭的單詞之后,而實際上,0開頭的單詞位于G開頭的單詞之后更為符合土耳其人的習(xí)慣。因此,現(xiàn)有的字符串排序方法無法兼顧除英語外其他語言的字符串排序,所以無法符合不同國家用戶的使用習(xí)慣。

【發(fā)明內(nèi)容】

[0004]本發(fā)明的實施例提供一種排序方法和移動設(shè)備,能夠同時兼顧多種語言的字符串的排序,從而符合不同國家用戶的使用習(xí)慣。
[0005]本發(fā)明的實施例采用如下技術(shù)方案:
[0006]一方面,提供一種排序方法,所述方法包括:
[0007]將第一字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將第二字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,轉(zhuǎn)義后的碼值包括所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值和所述第i個字符的統(tǒng)一碼值與所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值的差值;
[0008]將所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值進(jìn)行比較;
[0009]當(dāng)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值不相等時,根據(jù)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值和所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值的大小來排列所述第一字符串和所述第二字符串的順序;
[0010]當(dāng)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值相等時,將所述第一字符串的第i+ι個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將所述第二字符串的第i+ι個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,并將所述第一字符串的第i+ι個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i+ι個字符轉(zhuǎn)義后的碼值進(jìn)行比較,直至排列出所述第一字符串和所述第二字符串的順序;[0011]其中,i的初始值為I。
[0012]另一方面,提供一種移動設(shè)備,所述移動設(shè)備包括:
[0013]轉(zhuǎn)義單元,用于將第一字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將第二字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,轉(zhuǎn)義后的碼值包括所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值和所述第i個字符的統(tǒng)一碼值與所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值的差值;
[0014]比較單元,用于將所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值進(jìn)行比較;
[0015]排序單元,用于當(dāng)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值不相等時,根據(jù)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值和所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值的大小來排列所述第一字符串和所述第二字符串的順序;
[0016]所述轉(zhuǎn)義單元還用于,當(dāng)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值相等時,將所述第一字符串的第i+ι個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將所述第二字符串的第i+ι個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,以便所述比較單元將所述第一字符串的第i+ι個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i+ι個字符轉(zhuǎn)義后的碼值進(jìn)行比較,直至所述排序單元排列出所述第一字符串和所述第二字符串的順序;
[0017]其中,i的初始值為I。
[0018]本發(fā)明的實施例提供一種排序方法和移動設(shè)備,通過將字符串中字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,并根據(jù)轉(zhuǎn)義后的碼值進(jìn)行排序,能夠同時兼顧多種語言的字符串的排序,從而符合不同國家用戶的使用習(xí)慣。
【專利附圖】

【附圖說明】
[0019]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0020]圖1為本發(fā)明實施例提供的一種排序方法的流程示意圖;
[0021]圖2為本發(fā)明另一實施例提供的一種排序方法的流程示意圖;
[0022]圖3為本發(fā)明實施例提供的一種移動設(shè)備的結(jié)構(gòu)示意圖;
[0023]圖4為本發(fā)明實施例提供的另一種移動設(shè)備的結(jié)構(gòu)示意圖。
【具體實施方式】
[0024]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0025]本發(fā)明實施例提供一種排序方法,如圖1所示包括:[0026]S101、將第一字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將第二字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,轉(zhuǎn)義后的碼值包括第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值和第i個字符的統(tǒng)一碼值與第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值的差值。
[0027]S102、將第一字符串的第i個字符的轉(zhuǎn)義后的碼值與第二字符串的第i個字符的轉(zhuǎn)義后的碼值進(jìn)行比較。
[0028]S103、當(dāng)?shù)谝蛔址牡趇個字符的轉(zhuǎn)義后的碼值與第二字符串的第i個字符的轉(zhuǎn)義后的碼值不相等時,根據(jù)第一字符串的第i個字符的轉(zhuǎn)義后的碼值和第二字符串的第i個字符的轉(zhuǎn)義后的碼值的大小來排列第一字符串和第二字符串的順序。
[0029]S104、當(dāng)?shù)谝蛔址牡趇個字符的轉(zhuǎn)義后的碼值與第二字符串的第i個字符的轉(zhuǎn)義后的碼值相等時,將第一字符串的第i+Ι個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將第二字符串的第i+ι個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,并將第一字符串的第i+ι個字符的轉(zhuǎn)義后的碼值與第二字符串的第i+ι個字符轉(zhuǎn)義后的碼值進(jìn)行比較,直至排列出第一字符串和第二字符串的順序。
[0030]其中,i的初始值為I。
[0031]本發(fā)明的實施例提供一種排序方法,通過將字符串中字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,并根據(jù)轉(zhuǎn)義后的碼值進(jìn)行排序,能夠同時兼顧多種語言的字符串的排序,從而符合不同國家用戶的使用習(xí)慣。
[0032]本發(fā)明的另一實施例提供一種排序方法,如圖2所示,包括:
[0033]S201、將第一字符串的第i個字符的Unicode (統(tǒng)一碼)值進(jìn)行轉(zhuǎn)義,將第二字符串的第i個字符的Unicode值進(jìn)行轉(zhuǎn)義。
[0034]上述的第一字符串可以是一種語言或多種語言的字符串,第二字符串可以是一種語言或多種語言的字符串,例如第一字符串可以是一個英語單詞,也可以是一個西班牙語單詞或土耳其語單詞,同樣的第二字符串也可以是一個英語單詞,還可以是一個西班牙語單詞或土耳其語單詞。無論第一字符串和第二字符串是哪國語言的字符串,進(jìn)行字符串排序的方法完全相同。
[0035]需要說明的是:土耳其語共有29個字母,除了包括25個英文字母之外,還包括G、L 0和§,以下以0為例進(jìn)行說明,西班牙語共有27個字母,除了包括26個英文字母外,還包括M睜此之外還包括重音標(biāo)識字母人、6、?、0和?,以下以A為例進(jìn)行說明。
[0036]在字符串中的每個字符都有一個Unicode值,例如大寫的英文字母A的Unicode值為0x0041,西班牙語中的A的Unicode值為OxOOCl,大寫的英文字母G的Unicode值為0x0047,土耳其語中的G的Unicode值為OxOllE,而大寫英文字母Z的Unicode值為0x0060。而按照這種兩字節(jié)的Unicode值來排列字符,字符人和0都會排列在字符Z之后,不符合西班牙用戶和土耳其用戶的使用習(xí)慣。
[0037]因此,為了符合所有用戶的習(xí)慣,需要將字符人和字符A放在一起,將字符(5和G放
在一起。
[0038]故首先,需要將第一字符串與第二字符串的第i個字符進(jìn)行轉(zhuǎn)義處理,將兩字節(jié)碼值轉(zhuǎn)義為三字節(jié)碼值或者四字節(jié)碼值。當(dāng)然,i起始值為1,也就是要從第一字符串和第二字符串的的第I個字符開始轉(zhuǎn)義。
[0039]以四字節(jié)碼值為例,該四字節(jié)碼值的前兩字節(jié)為高位,后兩字節(jié)為低位。其中,每個字符的四字節(jié)碼值的高位為該字符對應(yīng)的基準(zhǔn)字符的Unicode值,四字節(jié)碼值的低位為該字符的Unicode值和該字符對應(yīng)的基準(zhǔn)字符的Unicode值的差值。
[0040]其中,當(dāng)字符為非英文字符時,該字符對應(yīng)的基準(zhǔn)字符為該字符對應(yīng)的英文大寫字母;當(dāng)字符為英文小寫字母時,該字符對應(yīng)的基準(zhǔn)字符為該字符對應(yīng)的英文大寫字母;當(dāng)字符為英文大寫字母時,該字符對應(yīng)的基準(zhǔn)字符為該字符自身;當(dāng)字符為標(biāo)點符號時,該字符對應(yīng)的基準(zhǔn)字符為該字符自身。
[0041]例如,字符人對應(yīng)的基準(zhǔn)字符為字符A,字符對應(yīng)的基準(zhǔn)字符為字符G,字符a對應(yīng)的基準(zhǔn)字符為字符A,而字符A對應(yīng)的基準(zhǔn)字符仍為字符A,字符“]”對應(yīng)的基準(zhǔn)字符仍為字符“]”。
[0042]而后,根據(jù)字符A與字符A的Unicode值就可以得到字符A與字符A的Unicode值的差值為0x0080,根據(jù)字符(5與字符G的Unicode值就可以得到字符6與字符G的Unicode值的差值為0x00D7,故字符A轉(zhuǎn)義后的Unicode值就為0x0041 0x0080,字符<5轉(zhuǎn)義后的Unicode值就為0x0047 0x00D7,而字符A轉(zhuǎn)義后的Unicode值就為0x0041 0x0000,字符G轉(zhuǎn)義后的Unicode值就為0x0047 0x0000。
[0043]S202、將第一字符串的第i個字符的轉(zhuǎn)義后的碼值與第二字符串的第i個字符的轉(zhuǎn)義后的碼值進(jìn)行比較。
[0044]具體的,可以將第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去第二字符串的第i個字符轉(zhuǎn)義后的碼值;
[0045]若第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去第二字符串的第i個字符轉(zhuǎn)義后的碼值后所得的差值為正數(shù),則判定第一字符串的第i個字符的轉(zhuǎn)義后的碼值大于第二字符串的第i個字符轉(zhuǎn)義后的碼值,此時執(zhí)行步驟S203 ;
[0046]若第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去第二字符串的第i個字符轉(zhuǎn)義后的碼值后所得的差值為負(fù)數(shù),則判定第一字符串的第i個字符的轉(zhuǎn)義后的碼值小于第二字符串的第i個字符轉(zhuǎn)義后的碼值,此時執(zhí)行步驟S203 ;
[0047]若第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去第二字符串的第i個字符轉(zhuǎn)義后的碼值后所得的差值為零,則判定第一字符串的第i個字符的轉(zhuǎn)義后的碼值等于第二字符串的第i個字符轉(zhuǎn)義后的碼值,此時,將i加I后,再次執(zhí)行步驟S201?步驟S202。
[0048]S203、根據(jù)第一字符串的第i個字符的轉(zhuǎn)義后的碼值和第二字符串的第i個字符的轉(zhuǎn)義后的碼值的大小來排列第一字符串和第二字符串的順序。
[0049]具體的,當(dāng)?shù)谝蛔址牡趇個字符的轉(zhuǎn)義后的碼值與第二字符串的第i個字符的轉(zhuǎn)義后的碼值不相等時,根據(jù)步驟S202比較出的第一字符串的第i個字符的轉(zhuǎn)義后的碼值和第二字符串的第i個字符的轉(zhuǎn)義后的碼值的大小來排列第一字符串和第二字符串的順序。
[0050]若第一字符串的第i個字符的轉(zhuǎn)義后的碼值大于第二字符串的第i個字符轉(zhuǎn)義后的碼值,則將第一字符串排列在所述第二字符串之后;否則;
[0051]若第一字符串的第i個字符的轉(zhuǎn)義后的碼值小于第二字符串的第i個字符轉(zhuǎn)義后的碼值,則將第一字符串排列在第二字符串之前。
[0052]綜上所述,對兩個字符串進(jìn)行排序,首先將第一字符串的第I個字符和將第二字符串的第I個字符進(jìn)行轉(zhuǎn)義,而后將第一字符串的第I個字符轉(zhuǎn)義后的碼值與第二字符串的第I個字符轉(zhuǎn)義后的碼值進(jìn)行比較,若兩個字符串的第I個字符轉(zhuǎn)義后的碼值不相等,則將第I個字符轉(zhuǎn)義后的碼值較小的那個字符串排列在前面;若兩個字符串的第I個字符轉(zhuǎn)義后的碼值相等,則需要進(jìn)入下一輪比較,即將第一字符串的第2個字符和將第二字符串的第2個字符進(jìn)行轉(zhuǎn)義,并將兩個字符串的第2個字符的轉(zhuǎn)以后的碼值進(jìn)行比較,并根據(jù)比較結(jié)果排列第一字符串和第二字符串,若兩個字符串的第2個字符轉(zhuǎn)義后的碼值仍然相等,則需要將第一字符串的第3個字符和將第二字符串的第3個字符進(jìn)行轉(zhuǎn)義并進(jìn)行比較,以此類推,直至排列出第一字符串和第二字符串的順序為止。
[0053]例如,假設(shè)第一字符串為西班牙語單詞人gata (瑪瑙),第二字符串為西班牙語單詞Aceptar (采納),首先將由第一字符串和第二字符串的第I個符進(jìn)行轉(zhuǎn)義,也就是將字符人和字符A進(jìn)行轉(zhuǎn)義。由步驟S201可知,字符人轉(zhuǎn)義后的Unicode值就為0x0041 0x0080,字符 A 轉(zhuǎn)義后的 Unicode 值就為 0x0041 0x0000,用 0x0041 0x0080 減去 0x0041 0x0000 為正數(shù),因此人轉(zhuǎn)義后的Unicode值大于A轉(zhuǎn)義后的Unicode值,故將第一字符串Agata排列在第二字符串Ac印tar之后。
[0054]再假設(shè)第一字符串為西班牙語單詞Agata,而第二字符串為西班牙語單詞Bodega(酒店),字符B轉(zhuǎn)義后的Unicode值就為0x00420x0000,用0x0041 0x0080減去0x0042 0x0000為負(fù)數(shù),故字符人轉(zhuǎn)義后的Unicode值小于字符B轉(zhuǎn)義后的Unicode值,故將第一字符串為Agata排列在第二字符串Bodega之前,也就是說Agata排列在Ac印tar之后,Bodega之前,可見,采用上述方法排列后的結(jié)果相對于現(xiàn)有技術(shù)中A開頭的字符排在Z開頭的單詞之后更符合西班牙語用戶的習(xí)慣。
[0055]又例如,不同語種字符串的比較,假設(shè)第一字符串為西班牙語單詞Ac印tar,第二字符串為英文單詞Accept (接受),由于第一字符串和第二字符串的第I個字符為A,轉(zhuǎn)義后的Unicode值都為0x00410x0000,故比較第I個字符無法排列第一字符串和第二字符串,第一字符串和第二字符串的第2個字符為C,轉(zhuǎn)義后的Unicode值都為0x0043 0x0020,故比較第2個字符也無法排列第一字符串和第二字符串,所以還需繼續(xù)比較,第一字符串的第3個字符為e,轉(zhuǎn)義后的Unicode值為0x0045 0x0020,第二字符串第3個字符C,轉(zhuǎn)義后的 Unicode 值都為 0x0043 0x0020,用 0x0045 0x0020 減去 0x0043 0x0020 為正數(shù),故將第一字符串Aceptar排列在第二字符串Accept之后。
[0056]采用上述方法兩兩比較,用戶終端就可以將混編字符庫中的所有字符串進(jìn)行排序,例如采用上述方法可以將混編語言的字母順序或者單詞順序進(jìn)行重新排列。
[0057]示例性的,如表I所示為英語、西班牙語以及土耳其語的大小寫字母以及標(biāo)點符號的重新排序結(jié)果。
[0058]表I
【權(quán)利要求】
1.一種排序方法,其特征在于,所述方法包括: 將第一字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將第二字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,轉(zhuǎn)義后的碼值包括所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值和所述第i個字符的統(tǒng)一碼值與所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值的差值; 將所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值進(jìn)行比較; 當(dāng)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值不相等時,根據(jù)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值和所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值的大小來排列所述第一字符串和所述第二字符串的順序; 當(dāng)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值相等時,將所述第一字符串的第i+ι個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將所述第二字符串的第i+ι個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,并將所述第一字符串的第i+ι個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i+ι個字符轉(zhuǎn)義后的碼值進(jìn)行比較,直至排列出所述第一字符串和所述第二字符串的順序; 其中,i的初始值為I。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將第一字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將第二字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義包括: 將所述第一字符串的第i個字符的統(tǒng)一碼值由兩字節(jié)碼值轉(zhuǎn)義為三字節(jié)碼值或四字節(jié)碼值; 將所述第二字符串的第i個字符 的統(tǒng)一碼值由兩字節(jié)碼值轉(zhuǎn)義為三字節(jié)碼值或四字節(jié)碼值; 其中,所述三字節(jié)碼值或者所述四字節(jié)碼值的高位為所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值;所述三字節(jié)碼值或者所述四字節(jié)碼值的低位為所述第i個字符的統(tǒng)一碼值與所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值的差值。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述將所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值進(jìn)行比較包括: 將所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去所述第二字符串的第i個字符轉(zhuǎn)義后的碼值; 若所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去所述第二字符串的第i個字符轉(zhuǎn)義后的碼值后所得的差值為正數(shù),則判定所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值大于所述第二字符串的第i個字符轉(zhuǎn)義后的碼值; 若所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去所述第二字符串的第i個字符轉(zhuǎn)義后的碼值后所得的差值為負(fù)數(shù),則判定所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值小于所述第二字符串的第i個字符轉(zhuǎn)義后的碼值; 若所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去所述第二字符串的第i個字符轉(zhuǎn)義后的碼值后所得的差值為零,則判定所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值等于所述第二字符串的第i個字符轉(zhuǎn)義后的碼值。
4.根據(jù)權(quán)利要求1至3任一項所述的方法,其特征在于,所述當(dāng)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第 二字符串的第i個字符的轉(zhuǎn)義后的碼值不相等時,根據(jù)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值和所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值的大小來排列所述第一字符串和所述第二字符串的順序包括: 若所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值大于所述第二字符串的第i個字符轉(zhuǎn)義后的碼值,則將所述第一字符串排列在所述第二字符串之后; 若所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值小于所述第二字符串的第i個字符轉(zhuǎn)義后的碼值,則將所述第一字符串排列在所述第二字符串之前。
5.根據(jù)權(quán)利要求1至4任一項所述的方法,其特征在于,所述第i個字符對應(yīng)的基準(zhǔn)字符包括: 當(dāng)所述第i個字符為非英文字符時,所述第i個字符對應(yīng)的基準(zhǔn)字符為所述字符對應(yīng)的英文大寫字母;或 當(dāng)所述第i個字符為英文小寫字母時,所述第i個字符對應(yīng)的基準(zhǔn)字符為所述字符對應(yīng)的英文大寫字母;或 當(dāng)所述第i個字符為英文大寫字母時,所述第i個字符對應(yīng)的基準(zhǔn)字符為所述第i個字符自身;或 當(dāng)所述第i個字符為標(biāo)點符號時,所述第i個字符對應(yīng)的基準(zhǔn)字符為所述第i個字符自身。
6.一種移動設(shè)備,其特征在于,所述移動設(shè)備包括: 轉(zhuǎn)義單元,用于將第一字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將第二字符串的第i個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,轉(zhuǎn)義后的碼值包括所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值和所述第i個字符的統(tǒng)一碼值與所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值的差值;比較單元,用于將所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值進(jìn)行比較; 排序單元,用于當(dāng)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值不相等時,根據(jù)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值和所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值的大小來排列所述第一字符串和所述第二字符串的順序; 所述轉(zhuǎn)義單元還用于,當(dāng)所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i個字符的轉(zhuǎn)義后的碼值相等時,將所述第一字符串的第i+Ι個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,將所述第二字符串的第i+Ι個字符的統(tǒng)一碼值進(jìn)行轉(zhuǎn)義,以便所述比較單元將所述第一字符串的第i+ι個字符的轉(zhuǎn)義后的碼值與所述第二字符串的第i+ι個字符轉(zhuǎn)義后的碼值進(jìn)行比較,直至所述排序單元排列出所述第一字符串和所述第二字符串的順序;其中,i的初始值為I。
7.根據(jù)權(quán)利要求7所述的移動設(shè)備,其特征在于,所述轉(zhuǎn)義單元具體用于: 將第一字符串的第i個字符的統(tǒng)一碼值由兩字節(jié)碼值轉(zhuǎn)義為三字節(jié)碼值或四字節(jié)碼值; 將第二字符串的第i個字符的統(tǒng)一碼值由兩字節(jié)碼值轉(zhuǎn)義為三字節(jié)碼值或四字節(jié)碼值; 其中,所述三字節(jié)碼值或者所述四字節(jié)碼值的高位為所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值;所述三字節(jié)碼值或者四字節(jié)碼值的低位為所述第i個字符的統(tǒng)一碼值與所述第i個字符對應(yīng)的基準(zhǔn)字符的統(tǒng)一碼值的差值。
8.根據(jù)權(quán)利要求6或7所述的移動設(shè)備,其特征在于,所述比較單元至少包括以下任一種單元: 計算單元,用于將所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去所述第二字符串的第i個字符轉(zhuǎn)義后的碼值; 判定單元,用于若所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去所述第二字符串的第i個字符轉(zhuǎn)義后的碼值后所得的差值為正數(shù),則判定所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值大于所述第二字符串的第i個字符轉(zhuǎn)義后的碼值;若所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去所述第二字符串的第i個字符轉(zhuǎn)義后的碼值后所得的差值為負(fù)數(shù),則判定所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值小于所述第二字符串的第i個字符轉(zhuǎn)義后的碼值;若所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值減去所述第二字符串的第i個字符轉(zhuǎn)義后的碼值后所得的差值為零,則判定所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值等于所述第二字符串的第i個字符轉(zhuǎn)義后的碼值。
9.根據(jù)權(quán)利要求6至8 任一項所述的移動設(shè)備,其特征在于,所述排序單元具體用于: 若所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值大于所述第二字符串的第i個字符轉(zhuǎn)義后的碼值,則將所述第一字符串排列在所述第二字符串之后; 若所述第一字符串的第i個字符的轉(zhuǎn)義后的碼值小于所述第二字符串的第i個字符轉(zhuǎn)義后的碼值,則將所述第一字符串排列在所述第二字符串之前。
10.根據(jù)權(quán)利要求6至9任一項所述的移動設(shè)備,其特征在于,所述第i個字符對應(yīng)的基準(zhǔn)字符包括: 當(dāng)所述第i個字符為非英文字符時,所述第i個字符對應(yīng)的基準(zhǔn)字符為所述字符對應(yīng)的英文大寫字母;或 當(dāng)所述第i個字符為英文小寫字母時,所述第i個字符對應(yīng)的基準(zhǔn)字符為所述字符對應(yīng)的英文大寫字母;或 當(dāng)所述第i個字符為英文大寫字母時,所述第i個字符對應(yīng)的基準(zhǔn)字符為所述第i個字符自身;或 當(dāng)所述第i個字符為標(biāo)點符號時,所述第i個字符對應(yīng)的基準(zhǔn)字符為所述第i個字符自身。
【文檔編號】G06F17/30GK103514160SQ201210199405
【公開日】2014年1月15日 申請日期:2012年6月15日 優(yōu)先權(quán)日:2012年6月15日
【發(fā)明者】曹慶峰 申請人:華為終端有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1