JavaマスターJavaプログラムサンプル集文字列, 日本語処理のサンプル → 全角カタカナを全角ひらがなへ変換する

全角カタカナを全角ひらがなへ変換する

全角カタカナを全角ひらがなへ変換するメソッドを紹介します。

このプログラムでは、 ひらがなもカタカナも文字コード上で対応する並びになっていることを利用し、 変換表を使わずに変換しています。

ただし、全角カタカナを全角ひらがなへ変換するときに問題となるのが、 「ヴ」「ヵ」「ヶ」の各文字です。これらは、対応するひらがながありません。 このプログラムでは、これらの文字をそれぞれ「う゛」「か」「け」に変換しています。

samples/string/japanese/ZenkakuKatakanaToZenkakuHiragana.java - Eclipse SDK
package samples.string.japanese;
public class ZenkakuKatakanaToZenkakuHiragana {
  /*
   * ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞ
   * ただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽ
   * まみむめもゃやゅゆょよらりるれろゎわゐゑをん
   
   * ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾ
   * タダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポ
   * マミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
   */
  public static String zenkakuHiraganaToZenkakuKatakana(String s) {
    StringBuffer sb = new StringBuffer(s);
    for (int i = 0; i < sb.length(); i++) {
      char c = sb.charAt(i);
      if (c >= 'ァ' && c <= 'ン') {
        sb.setCharAt(i, (char)(c - 'ァ' 'ぁ'));
      else if (c == 'ヵ') {
        sb.setCharAt(i, 'か');
      else if (c == 'ヶ') {
        sb.setCharAt(i, 'け');
      else if (c == 'ヴ') {
        sb.setCharAt(i, 'う');
        sb.insert(i + 1'゛');
        i++;
      }
    }
    return sb.toString();    
  }
  public static void main(String[] args) {
    System.out.println(zenkakuHiraganaToZenkakuKatakana("ジャヴァ・プログラミング"));
  }
}

コマンド プロンプト

C:\JavaMaster\bin>java -cp . samples.string.japanese.ZenkakuKatakanaToZenkakuHiragana 
じゃう゛ぁ・ぷろぐらみんぐ