【Java】 全角ひらがな ⇔ 全角カタカナ を変換する

注意

http://tagnoheya.com/charlist/charlist2.html
の一覧表からわかる通り、カタカナ「ヴヵヶ」は、
ひらがな文字コード上に対応しないため、変換はできない

サンプル

public class JapaneseHelper {
  private static final char SMALL_KATAKANA_A = 'ァ';
  private static final char SMALL_HIRAGANA_A = 'ぁ';
  private static final char KATAKANA_N = 'ン';
  private static final char HIRAGANA_N = 'ん';
  
  public static void main(String[] args) {
    System.out.println("toKatakana() ***************");
    System.out.println(JapaneseHelper.toKatakana(
            "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん"
                + " | がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ"
                + " | ぁぃぅぇぉゃゅょゎ"));
    
    System.out.println("");
    System.out.println("toHiragana() ***************");
    System.out.println(JapaneseHelper.toHiragana(
        "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン"
            + " | ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ"
            + " | ァィゥェォャュョヮ"));
    
    System.out.println("");
    System.out.println("コードの仕組み上できない文字 ***************");
    System.out.println(toHiragana("ヴヵヶ"));
  }

  public static String toKatakana(String targetValue) {
    StringBuffer returnValue = new StringBuffer(targetValue);
    for (int i = 0; i < returnValue.length(); i++) {
      char word = returnValue.charAt(i);
      if (word >= SMALL_HIRAGANA_A && word <= HIRAGANA_N) {
        returnValue.setCharAt(i, (char) (word - SMALL_HIRAGANA_A + SMALL_KATAKANA_A));
      }
    }
    return returnValue.toString();
  }

  public static String toHiragana(String targetValue) {
    StringBuffer returnValue = new StringBuffer(targetValue);
    for (int i = 0; i < returnValue.length(); i++) {
      char word = returnValue.charAt(i);
      if (word >= SMALL_KATAKANA_A && word <= KATAKANA_N) {
        returnValue.setCharAt(i, (char) (word - SMALL_KATAKANA_A + SMALL_HIRAGANA_A));
      }
    }
    return returnValue.toString();
  }
}

出力結果

toKatakana() ***************
アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン | ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ | ァィゥェォャュョヮ

toHiragana() ***************
あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん | がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ | ぁぃぅぇぉゃゅょゎ

コードの仕組み上できない文字 ***************
ヴヵヶ