/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package open.dolphin.adm20.rest; /** * * @author kazushi */ public class KanjiHelper { private static final char[] komoji = { 'ぁ', 'ぃ', 'ぅ', 'ぇ', 'ぉ', 'っ', 'ゃ', 'ゅ', 'ょ', 'ゎ', 'ァ', 'ィ', 'ゥ', 'ェ', 'ォ', 'ッ', 'ャ', 'ュ', 'ョ', 'ヮ' }; private static final char FIRST_HIRAGANA = 'ぁ'; private static final char LAST_HIRAGANA = 'ん'; private static final char FIRST_KATAKANA = 'ァ'; private static final char LAST_KATAKANA = 'ヶ'; private static final String[] HALF_KATAKANA = { "ァ", "ア", "ィ", "イ", "ゥ", "ウ", "ェ", "エ", "ォ", "オ", "カ", "ガ", "キ", "ギ", "ク", "グ", "ケ", "ゲ", "コ", "ゴ", "サ", "ザ", "シ", "ジ", "ス", "ズ", "セ", "ゼ", "ソ", "ゾ", "タ", "ダ", "チ", "ヂ", "ッ", "ツ", "ヅ", "テ", "デ", "ト", "ド", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "バ", "パ", "ヒ", "ビ", "ピ", "フ", "ブ", "プ", "ヘ", "ベ", "ペ", "ホ", "ボ", "ポ", "マ", "ミ", "ム", "メ", "モ", "ャ", "ヤ", "ュ", "ユ", "ョ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ワ", "イ", "エ", "ヲ", "ン", "ヴ", "カ", "ケ" }; public static boolean isKatakana(char c) { return (c >= FIRST_KATAKANA && c <= LAST_KATAKANA) ? true : false; } public static boolean isHiragana(char c) { return (c >= FIRST_HIRAGANA && c <= LAST_HIRAGANA) ? true : false; } private static char toKatakana(char c) { return (char) ((int)FIRST_KATAKANA + (int) c - (int)FIRST_HIRAGANA); } public static String hiraganaToKatakana(String s) { int len = s.length(); char[] src = new char[len]; s.getChars(0, s.length(), src, 0); char[] dst = new char[len]; for (int i = 0; i < len; i++) { if (isHiragana(src[i])) { dst[i] = toKatakana(src[i]); // あ!の検索不具合対応 }else{ dst[i] = src[i]; } } return new String(dst); } public static String matomoTobaka(String s) { int len = s.length(); char[] src = new char[len]; s.getChars(0, s.length(), src, 0); char[] dst = new char[len]; for (int i = 0; i < len; i++) { int index = (int)src[i] - (int)FIRST_KATAKANA; dst[i] = HALF_KATAKANA[index].charAt(0); } return new String(dst); } }