package ee.esutoniagodesu.util.lang.lingv;
import java.util.HashMap;
import java.util.Map;
public final class JCKana {
public static final Map<Character, String> KATAKANA_TO_ROMAJI = new HashMap<Character, String>() {{
put('ア', "a");
put('イ', "i");
put('ウ', "u");
put('エ', "e");
put('オ', "o");
put('カ', "ka");
put('ガ', "ga");
put('キ', "ki");
put('ギ', "gi");
put('ク', "ku");
put('グ', "gu");
put('ケ', "ke");
put('ゲ', "ge");
put('コ', "ko");
put('ゴ', "go");
put('サ', "sa");
put('ザ', "za");
put('シ', "shi");
put('ジ', "ji");
put('ス', "su");
put('ズ', "zu");
put('セ', "se");
put('ゼ', "ze");
put('ソ', "so");
put('ゾ', "zo");
put('タ', "ta");
put('ダ', "da");
put('チ', "chi");
put('ヂ', "dzi");
put('ツ', "tsu");
put('ヅ', "dzu");
put('テ', "te");
put('デ', "de");
put('ト', "to");
put('ド', "do");
put('ナ', "na");
put('ニ', "ni");
put('ヌ', "nu");
put('ネ', "ne");
put('ノ', "no");
put('ハ', "ha");
put('バ', "ba");
put('パ', "pa");
put('ヒ', "hi");
put('ビ', "bi");
put('ピ', "pi");
put('フ', "fu");
put('ブ', "bu");
put('プ', "pu");
put('ヘ', "he");
put('ベ', "be");
put('ペ', "pe");
put('ホ', "ho");
put('ボ', "bo");
put('ポ', "po");
put('マ', "ma");
put('ミ', "mi");
put('ム', "mu");
put('メ', "me");
put('モ', "mo");
put('ヤ', "ya");
put('ユ', "yu");
put('ヨ', "yo");
put('ラ', "ra");
put('リ', "ri");
put('ル', "ru");
put('レ', "re");
put('ロ', "ro");
put('ワ', "wa");
put('ヲ', "wo");
put('ン', "n");
}};
public static final Map<Character, Character> KATAKANA_TO_HIRAGANA = new HashMap<Character, Character>() {{
put('ア', 'あ');
put('イ', 'い');
put('ウ', 'う');
put('エ', 'え');
put('オ', 'お');
put('カ', 'か');
put('ガ', 'が');
put('キ', 'き');
put('ギ', 'ぎ');
put('ク', 'く');
put('グ', 'ぐ');
put('ケ', 'け');
put('ゲ', 'げ');
put('コ', 'こ');
put('ゴ', 'ご');
put('サ', 'さ');
put('ザ', 'ざ');
put('シ', 'し');
put('ジ', 'じ');
put('ス', 'す');
put('ズ', 'ず');
put('セ', 'せ');
put('ゼ', 'ぜ');
put('ソ', 'そ');
put('ゾ', 'ぞ');
put('タ', 'た');
put('ダ', 'だ');
put('チ', 'ち');
put('ヂ', 'ぢ');
put('ツ', 'つ');
put('ヅ', 'づ');
put('テ', 'て');
put('デ', 'で');
put('ト', 'と');
put('ド', 'ど');
put('ナ', 'な');
put('ニ', 'に');
put('ヌ', 'ぬ');
put('ネ', 'ね');
put('ノ', 'の');
put('ハ', 'は');
put('バ', 'ば');
put('パ', 'ぱ');
put('ヒ', 'ひ');
put('ビ', 'び');
put('ピ', 'ぴ');
put('フ', 'ふ');
put('ブ', 'ぶ');
put('プ', 'ぷ');
put('ヘ', 'へ');
put('ベ', 'べ');
put('ペ', 'ぺ');
put('ホ', 'ほ');
put('ボ', 'ぼ');
put('ポ', 'ぽ');
put('マ', 'ま');
put('ミ', 'み');
put('ム', 'む');
put('メ', 'め');
put('モ', 'も');
put('ヤ', 'や');
put('ユ', 'ゆ');
put('ヨ', 'よ');
put('ラ', 'ら');
put('リ', 'り');
put('ル', 'る');
put('レ', 'れ');
put('ロ', 'ろ');
put('ワ', 'わ');
put('ヲ', 'を');
put('ン', 'ん');
}};
public static final Map<Character, String> HIRAGANA_TO_ROMAJI = new HashMap<Character, String>() {{
put('あ', "a");
put('い', "i");
put('う', "u");
put('え', "e");
put('お', "o");
put('か', "ka");
put('が', "ga");
put('き', "ki");
put('ぎ', "gi");
put('く', "ku");
put('ぐ', "gu");
put('け', "ke");
put('げ', "ge");
put('こ', "ko");
put('ご', "go");
put('さ', "sa");
put('ざ', "za");
put('し', "shi");
put('じ', "ji");
put('す', "su");
put('ず', "zu");
put('せ', "se");
put('ぜ', "ze");
put('そ', "so");
put('ぞ', "zo");
put('た', "ta");
put('だ', "da");
put('ち', "chi");
put('ぢ', "dzi");
put('つ', "tsu");
put('づ', "dzu");
put('て', "te");
put('で', "de");
put('と', "to");
put('ど', "do");
put('な', "na");
put('に', "ni");
put('ぬ', "nu");
put('ね', "ne");
put('の', "no");
put('は', "ha");
put('ば', "ba");
put('ぱ', "pa");
put('ひ', "hi");
put('び', "bi");
put('ぴ', "pi");
put('ふ', "fu");
put('ぶ', "bu");
put('ぷ', "pu");
put('へ', "he");
put('べ', "be");
put('ぺ', "pe");
put('ほ', "ho");
put('ぼ', "bo");
put('ぽ', "po");
put('ま', "ma");
put('み', "mi");
put('む', "mu");
put('め', "me");
put('も', "mo");
put('や', "ya");
put('ゆ', "yu");
put('よ', "yo");
put('ら', "ra");
put('り', "ri");
put('る', "ru");
put('れ', "re");
put('ろ', "ro");
put('わ', "wa");
put('を', "wo");
put('ん', "n");
}};
public static String toHiragana(String katakana) {
StringBuilder result = new StringBuilder();
for (char p : katakana.toCharArray()) {
if (HIRAGANA_TO_ROMAJI.containsKey(p)) {
result.append(p);
} else if (KATAKANA_TO_ROMAJI.containsKey(p)) {
result.append(KATAKANA_TO_HIRAGANA.get(p));
} else {
//throw new IllegalArgumentException("Illegal kana: " + katakana);
}
}
return result.toString();
}
}