前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

ひらがなをカタカナに変換する。

課題

ひらがなで入力された文字列をカタカナに変換したい。

対応

1文字ごとにひらがなかどうかを判定し、文字コードをカタカナの位置までずらす。

ひらがな判定に固定値でユニコード範囲を使用してもいいのだけど、
UnicodeBlockにHIRAGANAが定義されているのでそちらを使うことにする。

Character.UnicodeBlock

    /**
     * ひらがなをカタカナに変換します。
     *
     * @param str 変換後の文字列
     * @return
     */
    public static String hiragana2Katakana(String str) {
        int delta = 'ア' - 'あ'; //差分
        StringBuilder buf = new StringBuilder(str.length());
        for (int i = 0; i < str.length(); i++) {
            char code = str.charAt(i);
            Character.UnicodeBlock block = Character.UnicodeBlock.of(code);
            if (block != null && block.equals(Character.UnicodeBlock.HIRAGANA)) {
                buf.append((char)(code + delta));
            } else {
                buf.append(code);
            }
        }
        return buf.toString();
    }