デフォルトだと<数字, 英字 .... >という順番だったが, ワードの頭文字に対して<かな, 記号(その他), 数字, 英語> という順番にソートしたかった。そこで, 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 コメント:
コメントを投稿