課題
ひらがなで入力された文字列をカタカナに変換したい。
対応
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(); }