全角変換

IBMが提供しているICU4Jってライブラリがあったから使ってみる。



private static final Pattern UNICODE_PATTERN =
Pattern.compile("\\\\u[0-9][0-9][0-9][0-9]");
/**
* 半角→全角変換
*
* @param s 変換対象文字列
*
* @return
*/
public static String halfFull(final String s) {

Transliterator tr = Transliterator.getInstance("Halfwidth-Fullwidth");
String result = tr.transliterate(s);

// ユニコード(\\uxxxx)が含まれる場合がある為、置き換える
Matcher matcher = UNICODE_PATTERN.matcher(result);
if (matcher.find()) {

// 指定したグループの数だけ繰り返す
for (int i = 0; i <= matcher.groupCount(); i++) {

String character = matcher.group(i);
result = result.replace(character,
String.valueOf((char) Integer.parseInt(
character.substring(2, 6), 16)));
}
}

return result;
}



¥が変換されてないような・・・
ん~文字が全部全角になってるかって確かめるのってかなりしんどい。
こーゆー場合ってみんなどうやってテストするんだろう。
もうちょっと調査が必要だなぁ。

0 コメント: