Java ArrayList 中文字的排序問題
這幾天在用郵遞區號3+3 app. 因為郵局寄給了我最新的3+3列表.
寫程式時我遇到了地址的中文字排序問題. 英文字在arraylist中排序很簡單.用Collections.sort排序..
但是遇到中文後就失效了,沒有按照字的筆畫多寡排序.只好想其他辦法....
排序前:
只好查google...最後發現這篇文章有解:
最後改用:
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時,一直有這種惡人來騷擾我.
誰能幫幫我啊...
留言
張貼留言