2018.7.19

カタカナや数字、アルファベットなどを半角から全角、全角から半角に変換する方法

Javaでカタカナや数字、アルファベットなどを半角または全角に変換する方法です。この手の処理は標準ライブラリでメソッドでも用意されているものと思っていましたが、意外とないんですね。

コード

ICU4Jという文字変換ライブラリがあるので、これを利用するのが一番簡単そうです。

ダウンロードしたjarファイルをプロジェクトで組み込んで、以下のようなコードで文字列の変換ができるようになります。

半角 → 全角


Transliterator transliterator = Transliterator.getInstance("Halfwidth-Fullwidth");
String result = transliterator.transliterate("アイウエオガギグゲゴABCDEabcde123%$");

System.out.println(result);

// 実行結果
// アイウエオガギグゲゴABCDEabcde123%$

全角 → 半角


Transliterator transliterator = Transliterator.getInstance("Fullwidth-Halfwidth");
String result = transliterator.transliterate("アイウエオガギグゲゴあいうえおがぎぐげごABCDEabcde123①%$");

System.out.println(result);

// 実行結果
// アイウエオガギグゲゴあいうえおがぎぐげごABCDEabcde123①%$

上記のライブラリを使わずに変換を行いたい場合、Java6以降では「Normalizer」を使うか(意図した変換にならない可能性があるので使う場合は注意)、それ以外では自作するしかなさそうです。

Normalizerや自作する場合のコードは、下記のリンク先の記事を参考にしてください。

参考リンク

Java】関連記事