星期二, 9月 17, 2013

java 中文排序

java 基本上是美國人發明的,所以一開始對英文字母的排序一定是最好的(廢話)。

A到Z有什麼好排的? 這邊就可以顯示中華文化的可看性。

我曾經在java的comparator 實做過中文排序,可總老是看不清那規則在哪裡。

應該是big5碼吧 ? 可是現在不都在推廣utf-8 ? 用big5沒辦法國際化。

問題是,utf-8在制定的時候,有它一套的規則在,

我在中國把客戶的資料庫安裝成utf-8之後,就被要求產品名稱要用拼音做排序,問題是它不是按照筆畫順序,也不是按照拼音方試去排,

只能把客戶的需求丟在一邊,快樂的回台灣了(喂)

只能用java 做排序了,oracle那邊還找不到漂亮的解法。

實做comparator 介面,使用java.text.collator 進行比較。

public class Asc implements Comparator { public int compare(Object arg0, Object arg1) { VLG_ItemMaster m1 = (VLG_ItemMaster)arg0; VLG_ItemMaster m2 = (VLG_ItemMaster)arg1; Collator collator =  Collator.getInstance(Locale.TRADITIONAL_CHINESE); return collator.compare(m1.getItemDesc(),m2.getItemDesc()); }}

在Locale是TRADITIONAL_CHINESE時,中文字是按照筆畫排序。

在Locale是SIMPLIFIED_CHINESE時,中文字是按照拼音排序。

論紅色警戒

紅色警戒是我接觸的第一款即時戰略遊戲。

第一次玩是我表哥介紹我玩的,那時候的電腦是80486,程式進入的時間差不多要一分鐘,而且還要配上光碟讀取。

遊戲的效果其實是很震憾的,從來都沒有接觸過遊戲是可以讓你操作整個軍隊。可以選一方陣營,盟軍跟蘇聯,讓你蓋基地,造兵,然後控制你的兵去殺敵人,音效、音樂在當時都是鉅作。

以兵種來說,機槍兵、榴彈兵、火箭兵、火燄兵、電光兵、醫務兵、獵狗、間碟、小偷、坦雅(特種兵)。
坦克有:採礦車、巡邏車、APC、雷達干擾車、輕型坦克、中型坦克、重型坦克、大砲、V2火箭、長毛象坦克、電光坦克、爆破卡車、時空轉換坦克、MAD坦克。
船艦有:運輸艦、砲艇、驅逐艦、巡洋艦、一般潛艇、飛彈潛艇。
飛機有:雅克機、米格機、阿帕契直昇機、雌鹿直昇機、運兵機。

由這些單位,搭配盟軍與蘇聯總計有五十個任務來說,內容非常豐富非常耐玩,並有提供網路連線可供多個玩家對戰。