2011年6月18日 星期六

【筆記】於Java程式使用正規表示式過濾字串內容

因為最近正在幫優蛇進行匯入資料的作業,有鑑於優蛇excel 裡的資料格式實在包羅萬象,光是一個日期存放格式就看的我頭昏眼花,為了避免永無止境的try catch。所以上網找了一下正規表示式過濾的相關文章。
先作點小手腳來把資料做過基本的過濾,然後再來做後續的格式轉換 (菸~~)

/*** 把非數字、/ 及 - 的字元全部過濾掉 ***/
public static String filterDate(String Str) {
String filter = "[^0-9/-]"; // 指定要過濾的字元
Pattern p = Pattern.compile(filter);
Matcher m = p.matcher(str);
return m.replaceAll("").trim(); // 將非上列所設定的字元全部replace 掉
}

詳細的用法可以參照這個網址,裡面介紹的非常詳細。也有一些較進階的用法

2011年6月11日 星期六

2011年6月4日 星期六

【筆記】於MacOSX中安裝MySQL

其實之前一直都是在PD中安裝DB,再由Mac這裡連結過去來進行開發。不過看了阿輝之前在PIL 上的Mac 安裝 MySQL 筆記後,就想說直接在Mac上直接安裝MySQL 試試好了,至少可以省掉開啟PD的麻煩
按照阿輝文章中的步驟,一切都很順利的進行著,一整個就是無痛安裝…
不過當我把自已手頭上程式run起來時,才發現到世界或許不是這樣的美好!!!
存進DB裡的中文字全變成???是怎樣…是要我解謎嗎 囧rz
雖然很久沒用MySQL 了,不過依稀還記得以前也碰過類似的問題,應該還是DB 編碼格式在做怪吧(菸~)
所以就稍微股溝了一下,先試試網路上最多人說的方式一
方法一: 在建立DB時加上語法宣告
CREATE DATABASE {database name} DEFAULT CHARACTER SET utf8 COLLATE UTF8_UNICODE_CI;
嗯…這招顯然是不行
再來試試另一種方式
方法二: 修改my.cnf 設定
1) 在/etc 的目錄下,新增 my.cnf 設定檔。若是照上面連結中阿輝的安裝方式,設定的範例檔應該會存放在 /usr/local/mysql/support-files/ 中,該目錄中一共有 my-large.cnf、my-medium.cnf及my-small.cnf 三種,可以依自已的需求來選擇你想要的範例檔。
若以my-medium.cnf 為例,直接開啟終端機,在裡面輸入 sudo cp /usr/local/mysql/support-file/my-medium.cnf /etc/my.cnf後,再打入你的管理者密碼即可。

2) 修改/etc/my.cnf 設定,在終端機中輸入 sudo nano /etc/my.cnf 即可對my.cnf 進行編輯。網路上看到很多文章都是寫要在[client] 及 [mysqld] 中新增下列設定
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci

問題就是出在這裡,我不管怎麼設定,mysql 服務似乎就是無法啟動,後來去看了一下Log只看到一堆 unknown variable 'default-character-set=utf8' 的錯誤 囧rz
後來查了一下才知道,原來從MySQL 5.5 後,對於 character set 的設定語法已經改變了。
只需要在my.cnf 中針對
[mysqld]底下新增一行 (原來上面那三行設定可以全部不用了)
character_set_server=utf8
就可以了