ICUは驚くほど多くの変換処理が可能で、半角に変換できる全角文字(カタカナ含む)を半角に変換なんていう日本のケータイ事情に都合のいい処理まである。恐るべしIBM。 import com.ibm.icu.text.Transliterator; Transliterator tr = Transliterator.getInstance("Fullwidth-Halfwidth"); String halfwidthHoge = tr.transliterate("ホゲ"); Translitartorはステートレスに動作するので、複数スレッドから同時に呼び出される可能性のあるシングルトンでステートレスなコンポーネントに持たせて使っても大丈夫。要するにスレッドセーフ。 "Fullwidth-Halfwidth"の Transliteratorは何故か空白文字だけ全角を半角に変換してくれないの