亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java編程實現中英混合字符串數組按首字母排序的方法

2020-01-31 16:50:33
字體:
來源:轉載
供稿:網友

本文實例講述了Java編程實現中英混合字符串數組按首字母排序的方法。分享給大家供大家參考,具體如下:

在Java中對于字符串數組的排序,我們可以使用Arrays.sort(String[])方法很便捷的進行排序。例如:

String[] arrays = new String[] { "gyu", "sdf", "zf", "大同", "收到", "地方", "三等分", "的人", "反對高鐵", "泛代數", "上的投入", "和國家" };/*設置語言環境*/Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);Arrays.sort(arrays, com);for (String item:arrays) { System.out.print(item+" ");}

輸出的結果為:“gyu  sdf  zf  大同  的人  地方  反對高鐵  泛代數  和國家  三等分  上的投入  收到”;在Java中排列的順序是按照數字->英文->漢字進行排序的,這種排序方式可以滿足部分要求,但很多情況下我們并不希望這樣排列!例如Anroid中的通訊錄,音樂播放列表等等,這些情形下我們希望英文首字母和中文拼音首字母一樣的排列在一起以方便查詢。由于這類排序算法很復雜,例如首字母相同的字符串還要接著比較第二個、第三個...。但是如果我們將jdk自帶的排序加以應用就不會顯得那么復雜了;

我的想法是這樣的:既然Java中排序是按數字->英文->漢字來進行排序的,那我們就把每個漢字打頭的字符串前面加上一個該字符串第一個字符的拼音的首字母和一個區分符“&”,再使用jdk提供的排序函數進行排序,這時我們得到的就是我們想要的排序的數組了。然后再遍歷數組,將包含&符號的字符串去掉&和第一個英文字母便完成了整個排序了,具體實現代碼如下(獲取漢字拼音需要引用該jar:pinyin4j-2.5.0.jar):

/*** 將字符串數字按首字母先后進行排序 * * Java原生排序為 數字->英文->中文 * 為了將英文和中文首字母相同的排列到一起 * 先將字符串首字符為漢字的改為該漢字的首字母加上該字符串 * 為了以示區分中間再加一個分割符& * 然后使用Java原生排序算法 * 再將包含&字符的字符串中的&和首字母去除從而達到排序目的 * */ public static void main(String[] args) {  String[] arrays = new String[] { "gyu", "sdf", "zf", "大同", "收到", "地方", "三等分", "的人", "反對高鐵", "泛代數", "上的投入", "和國家" }; for (int i = 0; i < arrays.length; i++) {  String str = arrays[i];  if (str.length() == 0)  return;  String alphabet = str.substring(0, 1);  /*判斷首字符是否為中文,如果是中文便將首字符拼音的首字母和&符號加在字符串前面*/  if (alphabet.matches("[//u4e00-//u9fa5]+")) {  str = getAlphabet(str) + "&" + str;  arrays[i] = str;  } } /*設置排序語言環境*/ Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA); Arrays.sort(arrays, com); /*遍歷數組,去除標識符&及首字母*/ for (int i=0;i<arrays.length;i++) {  String str=arrays[i];  if(str.contains("&")&&str.indexOf("&")==1){  arrays[i]=str.split("&")[1];  }  System.out.println(arrays[i]); } } public static String getAlphabet(String str) { HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); // 輸出拼音全部小寫 defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); // 不帶聲調 defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); String pinyin = null; try {  pinyin = (String) PinyinHelper.toHanyuPinyinStringArray(str.charAt(0), defaultFormat)[0]; } catch (BadHanyuPinyinOutputFormatCombination e) {  e.printStackTrace(); } return pinyin.substring(0, 1);}

這時輸出結果為:“大同 的人 地方 反對高鐵 泛代數 gyu 和國家 三等分 上的投入 收到 sdf zf”,大家也可以自己嘗試自己寫排序算法去實現,鍛煉一下思維也不無壞處,呵呵。

PS:這里再為大家推薦2款比較實用的相關在線排序工具供大家參考使用:

在線中英文根據首字母排序工具:
http://tools.VeVB.COm/aideddesign/zh_paixu

在線文本倒序翻轉排序工具:
http://tools.VeVB.COm/aideddesign/flipped_txt

希望本文所述對大家Java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩免费看的电影电视剧大全| 国产成人精品综合| 国产成人精品午夜| 欧美性猛交xxxx乱大交蜜桃| 日韩av在线看| 欧美极品少妇全裸体| 91精品久久久久久久久不口人| 自拍偷拍亚洲欧美| 欧美一乱一性一交一视频| 最近中文字幕mv在线一区二区三区四区| 欧美大尺度激情区在线播放| 精品久久久久久中文字幕一区奶水| 色一区av在线| 91sao在线观看国产| 国产成人亚洲综合91| 国产精品亚洲激情| 国产精品视频地址| 久久亚洲综合国产精品99麻豆精品福利| 国产不卡av在线免费观看| 国产999在线观看| 热久久免费视频精品| 成人www视频在线观看| 在线观看精品自拍私拍| 亚洲欧美在线免费观看| 久青草国产97香蕉在线视频| 九九热精品在线| 欧美一级大片在线观看| 亚洲男人天堂网| 欧美xxxx做受欧美| 久久久精品免费视频| 欧美成人久久久| 青草青草久热精品视频在线网站| 精品性高朝久久久久久久| 97视频在线观看免费高清完整版在线观看| 久久久99免费视频| 久久久久久中文字幕| 国产69精品久久久久9| 日韩精品视频在线观看免费| 亚洲图中文字幕| 欧美精品福利视频| 91久久在线播放| 欧美片一区二区三区| 欧美裸体xxxx极品少妇| 精品视频在线播放免| 国产精品视频大全| 狠狠干狠狠久久| 亚洲aⅴ男人的天堂在线观看| 欧美色欧美亚洲高清在线视频| 久久综合久久八八| 中日韩美女免费视频网址在线观看| 欧美色视频日本高清在线观看| 欧美性极品xxxx做受| 久久人人爽人人爽人人片亚洲| 亚洲欧洲日产国码av系列天堂| 国产区精品视频| 国产aⅴ夜夜欢一区二区三区| 欧美中在线观看| 国产成人精品一区二区三区| 日韩免费观看av| 欧美在线视频观看免费网站| 原创国产精品91| 成人在线国产精品| 国产精品免费一区二区三区都可以| 久久精品久久久久久| 欧洲美女免费图片一区| 国产精品久久久久久久电影| 黄色一区二区三区| 色综合久久久888| 国产专区精品视频| 亚洲大胆人体在线| 亚洲免费精彩视频| 91网在线免费观看| 亚洲人精选亚洲人成在线| 亚洲女人天堂色在线7777| 日韩久久免费电影| 国产日产亚洲精品| 日韩有码片在线观看| 亚洲成人网av| 国产精品亚洲网站| 高清一区二区三区四区五区| 中文字幕亚洲精品| 色哟哟亚洲精品一区二区| 色诱女教师一区二区三区| 日韩毛片在线观看| 亚洲一区二区三区视频播放| 91热精品视频| 色噜噜国产精品视频一区二区| 国产精品视频白浆免费视频| 55夜色66夜色国产精品视频| 精品亚洲一区二区三区在线播放| 欧美一区二区三区免费视| 欧美日韩一区二区精品| 久久色免费在线视频| 久久久国产在线视频| 日韩av片免费在线观看| 久久久久久久色| 久久久精品视频在线观看| 国产精品精品一区二区三区午夜版| 久久激情视频免费观看| 国内精品久久久久久久| 欧美黄色小视频| 国a精品视频大全| 97色在线视频| 69久久夜色精品国产69乱青草| 久久香蕉频线观| 欧美性20hd另类| 欧美成人激情在线| 日韩欧美一区二区三区久久| 中文字幕精品在线视频| 国产精品jizz在线观看麻豆| 久久国产精品久久精品| 中文字幕一区二区三区电影| 久久亚洲精品网站| 日本国产精品视频| 欧美精品在线极品| 欧美有码在线视频| 久久久久久久成人| 色琪琪综合男人的天堂aⅴ视频| 亚洲一区二区免费在线| 欧美午夜激情视频| 亚洲国产成人在线视频| 国产成人精品久久亚洲高清不卡| 亚洲精品98久久久久久中文字幕| 日韩欧美在线中文字幕| 日韩一区二区精品视频| 久久精品国产清自在天天线| 欧美精品videosex牲欧美| 亚洲综合中文字幕在线| 奇米成人av国产一区二区三区| 国产精品高潮呻吟久久av无限| 成人中文字幕+乱码+中文字幕| 永久免费看mv网站入口亚洲| 久久夜精品va视频免费观看| 欧美国产日韩一区二区| 国产午夜精品一区理论片飘花| 国产精品一二三在线| 动漫精品一区二区| 疯狂蹂躏欧美一区二区精品| 久久久久久中文字幕| 国产日产久久高清欧美一区| 欧美视频第一页| 日韩av在线免费播放| 国产精品中文久久久久久久| 国产视频一区在线| 少妇激情综合网| 欧美黑人性视频| 欧美大片在线免费观看| 欧美精品videossex88| 久久久亚洲影院你懂的| 91久久精品美女高潮| 亚洲国产欧美一区二区三区久久| 91精品国产色综合久久不卡98口| 国产精品日韩在线一区| 精品一区精品二区| 色播久久人人爽人人爽人人片视av| 国产www精品| 国产精品福利小视频| 91国产高清在线| 国产精品男女猛烈高潮激情| 亚洲国产欧美一区二区三区久久| 国产剧情日韩欧美| 成人av色在线观看| 国产午夜精品免费一区二区三区| 97精品在线视频|