一種混合字段的排序方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種混合字段的排序方法,其特征在于所述的排序方法包括如下步驟:將混合字段中的所有字符轉(zhuǎn)換為Unicode編碼值;將轉(zhuǎn)換后的字段Unicode編碼值進(jìn)行比較排序,如果兩個(gè)字段Unicode編碼值完全相同,則比較其初始漢字字段中逐個(gè)漢字的Unicode編碼值,并進(jìn)行比較排序。本發(fā)明能夠有效避免漢字與字母轉(zhuǎn)換后的編碼值相同,及同音字和多個(gè)漢字由于全拼字母相同轉(zhuǎn)換的編碼值出現(xiàn)錯(cuò)誤造成的排序問(wèn)題,減少排序錯(cuò)誤,提高檢索效率。
【專利說(shuō)明】一種混合字段的排序方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明創(chuàng)造涉及一種文字的排序方式,尤其是針對(duì)于智能終端或者車載多媒體系統(tǒng)中混合字段的排序方法。
【背景技術(shù)】
[0002]以車載導(dǎo)航,車載收音機(jī)為代表的車載多媒體系統(tǒng)迅速進(jìn)入了智能時(shí)代。尤其是近年來(lái)與智能手機(jī)的互相交互,成為了智能車載系統(tǒng)必備的功能。隨著手機(jī)電話本和藍(lán)牙音頻,USB音頻文件等內(nèi)容的交互量變大,單純的中文顯示已經(jīng)不能滿足智能設(shè)備的需求。像手機(jī)一樣所有的信息能夠按一定規(guī)則排序,能夠快速檢索,是必須要解決的一個(gè)問(wèn)題。但是各種手機(jī)中各種信息的排序方法不盡相同,并且車載設(shè)備的造作方式與移動(dòng)設(shè)備也不一樣?,F(xiàn)有車載娛樂(lè)系統(tǒng)中,有關(guān)中文的排序沒(méi)有特別標(biāo)準(zhǔn)。有的按照數(shù)據(jù)傳輸?shù)捻樞蚺判?,有的參照手機(jī)電話本的中文排序算法排序,即按照漢字的全拼,轉(zhuǎn)換成對(duì)應(yīng)的美國(guó)信息交換標(biāo)準(zhǔn)碼(ASCII, AmericanStandardCodeFor InformationInterchange),所有漢字按所對(duì)應(yīng)的ASCII數(shù)據(jù)按照從高位向底位順序逐字節(jié)進(jìn)行比較。以上的排序方法存在以下問(wèn)題:
[0003]不同詞組漢字全拼相同,如:詞組“李楠li’ nan”和“臨安lin’ an”全拼對(duì)應(yīng)的ASCII碼完全一致,導(dǎo)致二者無(wú)法區(qū)別。此外,英語(yǔ),拼音和漢字混在的情況。如“張三”和“張san”,“北京”和“beijing”,漢字轉(zhuǎn)換完全拼之后,兩個(gè)字符串的ASCII碼完全一致,導(dǎo)致二者無(wú)法區(qū)別。對(duì)于同音字“張”和“章”,中文全拼的字符串為“zhang”,因此會(huì)出現(xiàn)“張XX”和“章XX”混在一起的情況。以上情況會(huì)造成排序混亂,檢索查找效率低下。
【發(fā)明內(nèi)容】
[0004]本發(fā)明創(chuàng)造要解決的問(wèn)題是提供一種能夠有效克服上述缺陷的混合字段的排序方法及裝置。
[0005]為解決上述技術(shù)問(wèn)題,本發(fā)明創(chuàng)造采用的技術(shù)方案是:一種混合字段的排序方法,所述的排序方法包括如下步驟:
[0006]將混合字段中的所有字符轉(zhuǎn)換為Unicode編碼值;
[0007]將轉(zhuǎn)換后的字段Unicode編碼值進(jìn)行比較排序,如果兩個(gè)字段Unicode編碼值完全相同,則
[0008]比較其初始漢字字段中逐個(gè)漢字的Unicode編碼值,并進(jìn)行比較排序。進(jìn)一步的,所述的將混合字段中的所有字符轉(zhuǎn)換為Unicode編碼值包括如下步驟:
[0009]獲取字段;
[0010]判斷該字段中是否含有漢字,如果不包含漢字,則將其轉(zhuǎn)換為Unicode編碼,若含有漢字,則將漢字轉(zhuǎn)換為該漢字字符的全拼,并在多個(gè)漢字字符小寫(xiě)全拼之間加標(biāo)識(shí)符,并將轉(zhuǎn)換后的全拼轉(zhuǎn)換為相應(yīng)的Unicode編碼。
[0011]進(jìn)一步的,所述添加的標(biāo)識(shí)符為空格。
[0012]根據(jù)本發(fā)明的另一方面,還提供了一種用于混合字段的排序的裝置,所述的用于混合字段的排序裝置包括:
[0013]Unicode編碼裝置,用于將混合字段中的所有字符轉(zhuǎn)換為Unicode編碼值;
[0014]Unicode編碼值比較裝置,用于將字段Unicode編碼值進(jìn)行比較排序;
[0015]漢字Unicode編碼值比較裝置,用于將Unicode編碼值完全相同的字段的漢字Unicode編碼值進(jìn)行比較;
[0016]排序裝置,用于將根據(jù)上述裝置比較的Unicode編碼值按照比較排序。進(jìn)一步的,所述的排序裝置還包括:
[0017]全拼轉(zhuǎn)換裝置,用于將漢字轉(zhuǎn)換為該漢字字符的全拼;
[0018]標(biāo)識(shí)符添加裝置,用于在多個(gè)漢字的全拼之間增加標(biāo)識(shí)符。
[0019]本發(fā)明創(chuàng)造具有的優(yōu)點(diǎn)和積極效果是:能夠有效避免漢字與字母轉(zhuǎn)換后的編碼值相同,及同音字和多個(gè)漢字由于全拼字母相同轉(zhuǎn)換的編碼值出現(xiàn)錯(cuò)誤造成的排序問(wèn)題,減少排序錯(cuò)誤,提聞檢索效率
【專利附圖】
【附圖說(shuō)明】
[0020]圖1是本發(fā)明一個(gè)實(shí)例的處理流程示意圖
[0021]圖2是本發(fā)明的一個(gè)實(shí)例圖表示意圖
【具體實(shí)施方式】
[0022]為了對(duì)本發(fā)明創(chuàng)造更加深入的了解,下面列舉一具體實(shí)施例,并結(jié)合附圖,對(duì)本發(fā)明創(chuàng)造做進(jìn)一步的詳細(xì)說(shuō)明。
[0023]一般排序可以通過(guò)十六進(jìn)制數(shù)與一定范圍內(nèi)的字符一一對(duì)應(yīng),從而可以通過(guò)對(duì)十六進(jìn)制數(shù)比較大小的方法進(jìn)行排序。但是ASCII只適合于拉丁字符的比較,而GBCode只能與漢字字符轉(zhuǎn)換,進(jìn)而只適合比較漢字符。用Unicode的方法排序?qū)嶋H上是照顧了混合字符,實(shí)現(xiàn)了最大數(shù)據(jù)集化的統(tǒng)一排序。
[0024]圖2為本發(fā)明一個(gè)實(shí)施例中多個(gè)不同的字段,下面結(jié)合圖2的實(shí)例根據(jù)本發(fā)明所提供的方法對(duì)本發(fā)明做詳細(xì)的解釋和說(shuō)明。
[0025]圖2中的實(shí)例給出多個(gè)字短,按照本發(fā)明所提供的方法,首先依次檢測(cè)所有的字段,檢查字段中是否含有漢字,對(duì)于不含漢字的字段,如圖2中所提供的表格中的1-5字段,對(duì)于此種不含漢字的字段,可以直接按照對(duì)應(yīng)的Unicode編碼值將其直接轉(zhuǎn)換為相應(yīng)的Unicode編碼值,并按照比較后的Unicode編碼值按照從小到大或者從大到小或其它方式進(jìn)行排序;對(duì)于字段中包含漢字或者字段全部由漢字組成的字段,應(yīng)將字段中的漢字先轉(zhuǎn)換為相應(yīng)的全拼字母,可以采用大寫(xiě)或小寫(xiě),在本實(shí)例中采用小寫(xiě)字母的形式,如圖2中序號(hào)6的字段01上海,先將其中的漢字“上海”轉(zhuǎn)換為小寫(xiě)全拼“shanghai”并在兩個(gè)漢字全拼之間添加一個(gè)空格“shanghai”這樣操作的目的是區(qū)分出一些漢字因?yàn)槠匆舳a(chǎn)生轉(zhuǎn)換的錯(cuò)誤,如“西安”在拼音轉(zhuǎn)換中可以為“xian”與漢字“先”的拼音完全相同。同理,在漢字全拼之間也可以其它標(biāo)志符,如“&”等其它字符,而不僅僅局限與空格符。
[0026]由于漢字中存在在音同字不同的情況,如表中15及16中“上?!迸c“傷害”按照全拼轉(zhuǎn)換結(jié)果都為“shanghai”,這樣在排序中就會(huì)無(wú)法對(duì)這兩個(gè)字段進(jìn)行排序,對(duì)于這種情況,應(yīng)在上述排序的基礎(chǔ)上,重新查找“上?!奔啊皞Α睗h字的Unicode編碼值,并按照漢字的Unicode編碼值對(duì)這兩個(gè)字段排序,如果出現(xiàn)“上?!被蛘摺吧虾Α边@兩個(gè)字段,在第一個(gè)字符也相同的情況下,對(duì)第二個(gè)漢字的Unicode編碼值進(jìn)行比較排序,由此可以看出,對(duì)于部分漢字字段中某些漢字也完全相同的情況下,也應(yīng)該逐個(gè)漢字Unicode編碼值進(jìn)行比較,直至能夠比較排序。
[0027]在某些情況下,某些混合字段既包括漢字也有相應(yīng)的拉丁字母,如圖2中的相應(yīng)附表中18與19行中的“張三”與“張san”按照上面所述的方法,“張三”先轉(zhuǎn)換為“zhang空格san”,而“張san”則轉(zhuǎn)為“zhangsan”,逐個(gè)字符比較,比較到字符“g”之后,Unicode (空格)〈Unicode (S),因此,最終的排序是“張三”〈“張san”,“張三”排在“張san”前面。
[0028]以上對(duì)本發(fā)明創(chuàng)造的實(shí)施例進(jìn)行了詳細(xì)說(shuō)明,但所述內(nèi)容僅為本發(fā)明創(chuàng)造的較佳實(shí)施例,不能被認(rèn)為用于限定本發(fā)明的實(shí)施范圍。凡依本發(fā)明創(chuàng)造范圍所作的均等變化與改進(jìn)等,均應(yīng)仍歸屬于本專利涵蓋范圍之內(nèi)。
【權(quán)利要求】
1.一種混合字段的排序方法,其特征在于所述的排序方法包括如下步驟: 將混合字段中的所有字符轉(zhuǎn)換為Unicode編碼值; 將轉(zhuǎn)換后的字段Unicode編碼值進(jìn)行比較排序,如果兩個(gè)字段Unicode編碼值完全相同,則 比較其初始漢字字段中逐個(gè)漢字的Unicode編碼值,并進(jìn)行比較排序。
2.根據(jù)權(quán)利要求1所述的混合字段的排序方法,其特征在于所述的將混合字段中的所有字符轉(zhuǎn)換為Unicode編碼值包括如下步驟: 獲取字段; 判斷該字段中是否含有漢字,如果不包含漢字,則將其轉(zhuǎn)換為Unicode編碼,若含有漢字,則將漢字轉(zhuǎn)換為該漢字字符的全拼,并在多個(gè)漢字字符小寫(xiě)全拼中加標(biāo)識(shí)符,并將轉(zhuǎn)換后的全拼轉(zhuǎn)換為相應(yīng)的Unicode編碼。
3.根據(jù)權(quán)利要求1所述的混合字段的排序方法,其特征在于:所述添加的標(biāo)識(shí)符為空格。
4.一種用于混合字段的排序的裝置,其特征在于所述的用于混合字段的排序裝置包括: Unicode編碼裝置,用于將混合字段中的所有字符轉(zhuǎn)換為Unicode編碼值; Unicode編碼值比較裝置,用于將字段Unicode編碼值進(jìn)行比較排序; 漢字Unicode編碼值比較裝置,用于將Unicode編碼值完全相同的字段的漢字Unicode編碼值進(jìn)行比較; 排序裝置,用于將根據(jù)上述裝置比較的Unicode編碼值按照比較排序。
5.根據(jù)權(quán)利要求3所述的用于混合字段的排序裝置,其特征在于:所述的排序裝置還包括: 字符提取裝置,用于從字段中提取出字符; 全拼轉(zhuǎn)換裝置,用于將漢字轉(zhuǎn)換為該漢字字符的全拼; 標(biāo)識(shí)符添加裝置,用于在多個(gè)漢字的全拼之間增加標(biāo)識(shí)符。
【文檔編號(hào)】G06F17/30GK103810279SQ201410054656
【公開(kāi)日】2014年5月21日 申請(qǐng)日期:2014年2月18日 優(yōu)先權(quán)日:2014年2月18日
【發(fā)明者】譚展鵬 申請(qǐng)人:天津松下汽車電子開(kāi)發(fā)有限公司