日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java字符串排序_对字符串排序持一种宽容的心态

發(fā)布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java字符串排序_对字符串排序持一种宽容的心态 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在Java中一涉及中文處理就會冒出很多問題來,其中排序也是一個讓人頭疼的課題,我們來看下面的代碼:

上面的代碼定義一個數(shù)組,然后進(jìn)行升序排序,我們期望的結(jié)果是按照拼音升序排列,即為李四、王五、張三,但是結(jié)果卻不是這樣的:

這是按照什么排序的呀,非?;靵y!我們知道Arrays工具類的默認(rèn)排序是通過數(shù)組元素的compareTo方法來進(jìn)行比較的,那我們來看String類的compareTo的主要實(shí)現(xiàn):

上面的代碼先取得字符串的字符數(shù)組,然后一個一個地比較大小,注意這里是字符比較(減號操作符),也就是UNICODE碼值的比較,查一下UNICODE代碼表,“張”的碼值是5F20,而“李”是674E,這樣一看,“張”排在“李”的前面也就很正確了—但這明顯與我們的意圖沖突了。這一點(diǎn)在JDK文檔中也有說明:對于非英文的String排序可能會出現(xiàn)不準(zhǔn)確的情況。那該如何解決這個問題呢?Java推薦使用

Collator類進(jìn)行排序,那好,我們把代碼修改一下:

輸出結(jié)果如下:

這確實(shí)是我們期望的結(jié)果,應(yīng)該舉杯慶賀了吧!但是且慢,中國的漢字博大精深,Java是否都能精確的排序呢?最主要的一點(diǎn)是漢字中有象形文字,音形分離,是不是每個漢字都能按照拼音的順序排列好呢?我們寫一個復(fù)雜的漢字來看看:

三個?!盃摹弊xbēn,三個金“鑫”讀xīn,這兩個字經(jīng)常出現(xiàn)在飯店和商店的名稱上,我們來看排序的輸出結(jié)果:

輸出結(jié)果又亂了!不要責(zé)怪Java,它已經(jīng)盡量為我們考慮了,只是因?yàn)槲覀兊臐h字文化太博大精深了,要做好這個排序確實(shí)有點(diǎn)難為它。更深層次的原因是Java使用的是UNICODE編碼,而中文UNICODE字符集是來源于GB18030的,GB18030又是從GB2312發(fā)展起來,GB2312是一個包含了7000多個字符的字符集,它是按照拼音排序,并且是連續(xù)的,之后的GBK、GB18030都是在其基礎(chǔ)上擴(kuò)充出來的,所以要讓它們完整排序也就難上加難了。

如果是排序?qū)ο笫墙?jīng)常使用的漢字,使用Collator類排序完全可以滿足我們的要求,畢竟GB2312已經(jīng)包含了大部分的漢字,如果需要嚴(yán)格排序,則要使用一些開源項(xiàng)目來自己實(shí)現(xiàn)了,比如pinyin4j可以把漢字轉(zhuǎn)換為拼音,然后我們自己來實(shí)現(xiàn)排序算法,不過此時你也會發(fā)現(xiàn)要考慮諸如算法、同音字、多音字等眾多問題。

本文參考自:《編寫高質(zhì)量代碼:改善java程序的151個建議》

作者:秦小波

聲明:本文只供學(xué)習(xí)使用,未涉及任何商業(yè)利益,如有侵權(quán),立刪。

支持作者

贊賞就不用啦,生活都不易,右下角的“在看/贊”點(diǎn)一下,如果感覺文章不錯,記得分享到朋友圈讓更多人知道!

總結(jié)

以上是生活随笔為你收集整理的java字符串排序_对字符串排序持一种宽容的心态的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 韩日视频| 欧洲av一区 | 精品一区二区三区免费视频 | 美日韩av| 人妻少妇一区 | yy色综合 | 久久久久久久久免费 | 三级不卡视频 | 碰碰97 | 国产伦理精品 | 亚洲av无码乱码在线观看富二代 | 手机看片久久 | 亚洲精品国产精品乱码不99按摩 | 在线免费视频一区二区 | 少妇无码一区二区三区免费 | 深夜天堂| 亚洲久久综合 | 亚洲乱码国产乱码精品天美传媒 | 久久久久久久女国产乱让韩 | 国产亚洲一区二区三区四区 | www.日韩高清 | 日本xxxxxⅹxxxx69 | av日韩国产 | 日韩欧美高清视频 | 国产精品免费一区二区区 | 香蕉在线网站 | 国产精品毛片一区 | 蜜桃av久久久亚洲精品 | 日日噜噜噜夜夜爽爽狠狠视频97 | 国产欧美一级 | 极品少妇xxxx精品少妇偷拍 | 成年人网站黄 | 久久不卡视频 | 色94色欧美sute亚洲线路二 | 亚洲自拍偷拍一区二区 | 免费在线激情视频 | hitomi一区二区三区精品 | 青青草网站 | 四虎看黄| www日韩欧美 | 国产一级做a爰片久久毛片男男 | 国产精品污视频 | 亚洲AV成人无码久久 | 国产精品三级在线 | 修仙淫交(高h)h文 | 久久久精品福利 | 奇米一区二区三区 | 龚玥菲一级淫片 | 国产麻豆午夜三级精品 | 韩国女主播一区 | 欧洲美女粗暴牲交免费观看 | 欧美成人三级精品 | 欧美粗暴se喷水 | 自拍偷拍校园春色 | 久久久免费av | 草久免费视频 | 色涩综合 | aaa黄色一级片 | 日韩三级在线播放 | 久操影视 | 无限资源日本好片 | 成人乱码一区二区三区av | 丁香婷婷视频 | 国产又黄又粗又猛又爽视频 | 麻豆视频在线播放 | 国产精品视频一区二区在线观看 | 中文字幕免费观看视频 | 亚洲国产成人精品一区二区三区 | 精品91久久久久久 | 亚洲人女屁股眼交6 | 99在线精品视频 | 强公把我次次高潮hd | 国产淫视频| 亚洲人妖在线 | 中文字幕av免费在线观看 | 山村大伦淫第1部分阅读小说 | 玖玖久久 | av一区二区三区免费观看 | 久久久久久麻豆 | 午夜888 | 黄色片免费观看视频 | 91漂亮少妇露脸在线播放 | 佐山爱av在线| 色屁屁www影院免费观看入口 | 亚洲天堂导航 | 精品久久成人 | 免费在线看黄网址 | 国产又色又爽无遮挡免费 | 黄色小说在线免费观看 | 免费观看毛片网站 | 日韩精品一区二区三区久久 | 欧美在线视频不卡 | 小宝贝真紧h军人h | 自拍偷拍中文字幕 | 久久亚洲一区二区三区四区 | 国产人妻人伦精品1国产盗摄 | 男女啪啪毛片 | 亚洲性精品| 午夜av中文字幕 |