Java 半角英数字を判定する方法 – クラス String

Javaで半角英数字を判定する方法です。

画面で入力された値が、半角英数字かどうかをチェックするのは、実務ではよくあることですね。プログラミングの基本である文字列操作ですが、ここでは 指定された文字列が半角英数字か否かをチェックする方法 を紹介します。


半角英数字を判定する

半角英数字(記号含む)か否かを判定するサンプルです。

/**
 * 指定された文字列が、半角英数字(記号含む)か否かを返します。
 *
 * @param value 処理対象となる文字列
 * @return true:半角英数字である(もしくは対象文字がない), false:半角英数字でない
 */
public static Boolean isHalfWidthAlphanumeric(String value) {
  if ( value == null || value.length() == 0 )
    return true;
  int len = value.length();
  byte[] bytes = value.getBytes();
  if ( len != bytes.length )
    return false;
  return true;
}

文字数の長さはlength プロパティによって取得することができますが、日本語も1文字としてカウントされてしまいます。そこで、getBytes プロパティと比較し、同じかどうかをチェックしています。

以下のテストを実行すると・・・

System.out.println(StringUtils.isHalfWidthAlphanumeric(null));
System.out.println(StringUtils.isHalfWidthAlphanumeric("saka-en1234"));
System.out.println(StringUtils.isHalfWidthAlphanumeric("さかえん1234"));
System.out.println(StringUtils.isHalfWidthAlphanumeric("サカエン1234"));
System.out.println(StringUtils.isHalfWidthAlphanumeric("saka-enさかえん"));

結果は以下の通りです。

true
true
false
false
false

まとめ

Javaで半角英数字を判定する方法を紹介しました。

ちなみに「Javaで文字列のバイト数を取得する方法」も紹介しているので、よかったら読んでみてください。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。