KanaConverter

全角・半角 の ひらがな・カタカナ・ローマ字 の相互変換

1つの静的関数を呼ぶだけで、あらゆる仮名文字・ローマ字の相互変換を可能に

【例】単数の変換オプション

半角カタカナを全角に変換するサンプルコード

String input_str = "カナ・ツールズ v1.0";
int conv_op_flags = KanaConverter.OP_HAN_KATA_TO_ZEN_KATA;
String output_str = KanaConverter.convertKana(input_str, conv_op_flags);
System.out.println(output_str);
// "カナ・ツールズ v1.0"

【例】複数の変換オプション

半角カタカナを全角に、全角英数字を半角に、同時に変換するサンプルコード

String input_str = "カナ・ツールズ v1.0";
int conv_op_flags = KanaConverter.OP_HAN_KATA_TO_ZEN_KATA | KanaConverter.OP_ZEN_ASCII_TO_HAN_ASCII;
String output_str = KanaConverter.convertKana(input_str, conv_op_flags);
System.out.println(output_str);
// "カナ・ツールズ v1.0"

ある文字列に対して、KanaConverter ができる変換処理の詳細

変換オプション 対象文字
OP_HAN_ASCII_TO_ZEN_ASCII
半角英数字を全角に変換
Ja (12) →
Ja  (12)
半角ローマ字の大文字、小文字、数字、スペース、句読点
OP_HAN_LETTER_TO_ZEN_LETTER
半角英字を全角に変換
Ja → Ja 半角ローマ字の大文字と小文字
OP_HAN_NUMBER_TO_ZEN_NUMBER
半角数字を全角に変換
12 → 12 半角ローマ字の数字
OP_HAN_SPACE_TO_ZEN_SPACE
半角スペースから全角に変換
  →   半角ローマ字のスペース文字
OP_HAN_KATA_TO_ZEN_HIRA
半角カタカナから全角ひらがなに変換
ジャ → じゃ 半角カタカナ文字、そして , , , , ,
OP_HAN_KATA_TO_ZEN_KATA
半角カタカナから全角に変換
ジャ → ジャ 半角カタカナ文字、そして , , , , ,
OP_KEEP_DIACRITIC_MARKS_APART
濁点・半濁点を単独の文字として残す
ジャ → シ゛ャ を半角から全角に変換する際に、全角の文字として合体させない。この変換オプションは、 OP_HAN_KATA_TO_ZEN_HIRAOP_HAN_KATA_TO_ZEN_KATAでしか利用できない。
OP_ZEN_ASCII_TO_HAN_ASCII
全角英数字から半角に変換
Ja  (12)
→ Ja (12)
全角ローマ字の大文字、小文字、数字、スペース、句読点
OP_ZEN_LETTER_TO_HAN_LETTER
半角英字を全角に変換
Ja → Ja 全角ローマ字の大文字と小文字
OP_ZEN_NUMBER_TO_HAN_NUMBER
全角数字を半角に変換
12 → 12 全角ローマ字の数字
OP_ZEN_SPACE_TO_HAN_SPACE
全角スペースから半角に変換
  →   全角ローマ字のスペース文字
OP_ZEN_HIRA_TO_HAN_KATA
全角ひらがなから半角カタカナに変換
じゃ → ジャ 全角ひらがな文字、そして , , , , ,
OP_ZEN_HIRA_TO_ZEN_KATA
全角ひらがなから全角カタカナに変換
じゃ → ジャ 全角ひらがな文字
OP_ZEN_KATA_TO_HAN_KATA
全角カタカナから半角に変換
ジャ → ジャ 全角カタカナ文字、そして , , , , ,
OP_ZEN_KATA_TO_ZEN_HIRA
全角カタカナから全角ひらがなに変換
ジャ → じゃ 全角カタカナ文字 ( 以外)

対象文字の詳細

各変換オプションは、リポジトリ上にある SingleOpTest (全対象文字の単体テスト) を参照して下さい。

KanaConverter の利用例

住所処理

住所や電話番号などは、カタカナや英数字などがよく全角・半角が混ぜた状態で入力されます。

これを簡単に統一できます。

変換前

東京都北区赤羽6−30−1 赤羽ヒルズ

変換後

東京都北区赤羽6-30-1 赤羽ヒルズ
// Set the necessary conversion flags in a flag-based integer
int conversion_flags = 0;
conversion_flags |= KanaConverter.OP_HAN_KATAKANA_TO_ZEN_KATA;
conversion_flags |= KanaConverter.OP_ZEN_ASCII_TO_HAN_ASCII;

// Convert the string
String standardized_address = KanaConverter.convertKana(input_address, conversion_flags);

ひらがなとカタカナが混ざっている場合

文字列にひらがなとカタカナが混ざっていても、簡単に変換できます。

変換前

デカい

変換後

でかい
String mixed_word = "デカい";
int conversion_flags = KanaConverter.OP_ZEN_KATA_TO_ZEN_HIRA;
String all_hiragana_word = KanaConverter.convertKana(mixed_word, conversion_flags);

変換から除外文字がある例

HTML タグの括弧など、必要に応じて特定の文字を変換から除外することができます。

Before

<script>

After

<script>
String string_with_html = "<script>";
String excluded_chars = "<>";
String safe_conversion = KanaConverter.convertKana(string_with_html, KanaConverter.OP_ZEN_ASCII_TO_HAN_ASCII, excluded_chars);