デフォルトだと<数字, 英字 .... >という順番だったが, ワードの頭文字に対して<かな, 記号(その他), 数字, 英語> という順番にソートしたかった。そこで, sortgroupというフィールドを目的のテーブルに作成する。
sortgroupの値は, 半角カナ → 1, 記号(その他) → 2, 数字 → 3, 英字 → 4 とする。
こうすれば, SELECT * FROM table ORDER BY sortgroup ASC みたいにすれば取ってこれるよね。
で、頭文字がどのタイプのものかを判別するためのプログラムは以下
public class CheckWordType { // 文字列が 半角カタカナ(1), その他(2), 数字(3), アルファベット(4)のどれかを調べる public int checkCharType(char c){ if(c >= 0xff66 && c <= 0xff9d){ // 半角カタカナ (1) http://ash.jp/code/unitbl1.htm 参照 return 1; }else if(Character.isLetter(c)){ // アルファベット (4) return 4; }else if(Character.isDigit(c)){ // 数字 (3) return 3; }else{ // その他 (2) return 2; } } }
まぁ、まとめるほどの事でもないんだけど、書く記事がなかったんでw
0 コメント:
コメントを投稿