TomcatでWebから入力された文字列をJavaで半角文字以外の文字列が入ってるかチェックしたいと思います。

やり方はいろいろ考えられるのですが(Byteでチェックとか)どれが一番standardなんでしょう?
日本語だけの問題?だからかあまりこれだっていうやり方が無い気がしたので・・。これ以外はcommonsのLangなどを参考に出来るんですが。
これが一番無難じゃないかという方法があれば教えてください。ただしJavaScriptやVBScriptなどJava以外のやり方は対象外でお願いします。

回答の条件
  • 1人5回まで
  • 100 ptで終了
  • 登録:2006/05/11 14:53:28
  • 終了:2006/05/18 14:55:05

回答(3件)

ただいまのポイント : ポイント3 pt / 100 pt ツリー表示 | 新着順
java.lang.Character.UnicodeBlock oldriver2006/05/11 20:04:59ポイント1pt
半角がいわゆるASCII文字の範囲ならjava.lang.Character.UnicodeBlock クラスで文字の種類を(BASIC_LATINかどうか)判別するのがキレイな方法かなと思います。 ただ、半角カナと全角英数は同じUnodeブロックに入ってるのでこの方法 ...
正規表現は? tadashi08052006/05/11 15:21:16ポイント2pt
記号が含まれると、正規表現パターンを作るのが面倒ですが、半角英数だけなら[¥p{Alnum}]+とかの正規表現の否定でjava.util.regex()でマッチさせれば、半角英数以外の文字が入っているかどうかがわかると思います。 半角記号 ...
質問 matttsu2006/05/11 15:29:45
正規表現は確かに有効な方法だと思います。 ただ全角文字以外という条件のため 「必要な分列挙」ってのが大変かなと・・・。 こういう日本語のためのライブラリとかが用意されていればなぁ。 アメリカでも全角文字 ...
  • id:winwood
    standardかどうかは判りませんが、以下の様な関数でどうでしょうか?(Unicodeに変換してから渡すのを忘れないで下さいね)

    public boolean isHankaku(String s)
    {
    char [] c = s.toCharArray();
    for(int i=0; i<s.length(); i++)
    {
    if (Character.UnicodeBlock.of(c[i])
    != Character.UnicodeBlock.BASIC_LATIN)
    return false;
    }
    return true;
    }

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません