Java ArrayList 中文字的排序問題

這幾天在用郵遞區號3+3 app. 因為郵局寄給了我最新的3+3列表.

寫程式時我遇到了地址的中文字排序問題. 英文字在arraylist中排序很簡單.用Collections.sort排序..

但是遇到中文後就失效了,沒有按照字的筆畫多寡排序.只好想其他辦法....

排序前:

排序後:(中文字的排序還是錯的.可看到大字在中字的後面)

只好查google...最後發現這篇文章有解:

https://blog.csdn.net/weixin_44246836/article/details/107250479?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-7.baidujs&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-7.baidujs

 

 最後改用:

Collections.sort(arr_filter_town, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {

return Collator.getInstance(Locale.TRADITIONAL_CHINESE).compare(o1.charAt(0), o2.charAt(0));
}
});

 

問題二:

 java.lang.ClassCastException: java.lang.Character cannot be cast to java.lang.String
        at java.text.Collator.compare(Collator.java:279)
        at com.mark.taiwanpostmailbox.zip33.datasave_zip33$1.compare(datasave_zip33.java:161)
        at com.mark.taiwanpostmailbox.zip33.datasave_zip33$1.compare(datasave_zip33.java:157).

怎辦????

本來想只比第一個字元就好,省速度....但想想還是比較整個字串比較好...不能直接這樣比...

Collections.sort(arr_filter_town, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {

return Collator.getInstance(Locale.TRADITIONAL_CHINESE).compare(o1, o2);
}
});

 

好像速度也沒比較慢,而且遇到第1個字元相同時還可比對第二個字元.

這樣感覺比較好.

結果: (可以看到列表是按中文字的字元筆畫多寡來排序,這樣user就不用選個半死了,因為之前是按照英文來排序,中文沒排序...)


 


 修改過的新版APP即將上架ANDROID: (IOS等等幾週後吧,IOS 是用SWIFT...不一樣的語言)

android app 下載點

Google play android app: 3+3 Taiwan postal code zip

ios app 下載點:

ios app apple store: 台灣3+3郵遞區‪號‬

 ----------------

這app是免費的啦,做公益的.但也花了好幾個禮拜來做.

中間時間還有不少惡人來騷擾打攪我設計app...

 這又是另一段故事了。..

比如說 空調好了,青創基地有個惡霸總是喜歡關別人的冷氣跟燈.

怎麼講都不聽,我去上個廁所,他就把他關掉.故意找人麻煩.

跟管理中心反映,他們也不處理.

有次我真的很生氣,一天要關我的空調跟燈幾次,我去找他理論.對方根本不尊重人...

他說要省電!!!不要浪費電.但事實上他卻自己浪費電,比如說在安東基地煮飯阿...等等更耗電的動作.

而且離開這間房間,整棟基地的其他地方燈都是開的.也就是說這惡人在整棟中專挑我的座位,專門把我的燈跟冷氣關掉...

這個惡霸就是這樣欺負人的.

美其名是省電,實則是霸凌別人.

而跟管理單位反映後,安東基地管理單位也是任由好人被欺負,不盡責.

當我在努力為大眾設計app時,一直有這種惡人來騷擾我.

誰能幫幫我啊...



 

 

 

 

 

 


留言

這個網誌中的熱門文章

最爛的銀行服務-玉山銀行

Mark App Design Apps - Terms and Privacy Policy (服務條款,隱私權政策)

SMR疊瓦式hdd致命缺陷被解決????!!!

ios app 上架時app icon要注意事項

更改google drive預設存放目錄位置Change Google Drive Default Folder Location in Windows

google play 正式發布前測試報告...非常好用.

舊有app在Android 12 閃退問題& app Splash screens

app bundle and bundletool. 關於aab安裝問題

關於google play console app應用程式簽署

Google Play badge徽章產生器