読者です 読者をやめる 読者になる 読者になる

Javaで全角英数文字を半角に、半角カナを全角に変換する

Javaでテキストの処理をしていた時に、入力されたテキストのうち、全角英数文字を半角に、半角カナを全角に変換して統一する必要があったので、方法を調べていたら、標準ライブラリの中に便利なものがあったので、紹介します。

java.text.Normalizer

java.text.Normalizer というクラスで、
「テキストのソートや検索が容易になるように Unicode テキストをそれと等価な合成形式または分解形式に変換」する機能を提供してくれるようです。
http://docs.oracle.com/javase/jp/6/api/java/text/Normalizer.html

このように使います。

import java.text.Normalizer;
text = "AabB12345アイウエオあいうえお";
normalizedText = Normalizer.normalize(text, Normalizer.Form.NFKC);

textには、「AabB12345アイウエオあいうえお」という文字列が入っていて、全角英数、半角英数、半角カナ、全角文字がごちゃまぜになっています。
これをnormalizeメソッドに渡すと、「AabB12345アイウエオあいうえお」というように、統一してくれます。