5

alphanumericJava では、文字列に,spaceおよび文字のみが含まれていることを確認する必要がありdashます。

クラスorg.apache.commons.lang.StringUtilsとほぼ適切なメソッドを見つけましたisAlphanumericSpace(String)...しかし、ダッシュも含める必要があります。

これを行う最善の方法は何ですか?正規表現を使用したくありません。

4

5 に答える 5

13

あなたが使用することができます:

StringUtils.isAlphanumericSpace(string.replace('-', ' '));
于 2009-04-15T00:08:41.410 に答える
6

うーん... String.chatAt ( int )を使用して自分でプログラムするだけです。とても簡単です...

位置インデックスを使用して文字列内のすべてのcharを反復し、ASCII 文字 0 ~ 9、a ~ z、および A ~ Z が連続したコードを使用するという事実を使用して比較します。条件:

  • 「0」から「9」の間
  • 「a」と「z」の間
  • 「A」と「Z」の間
  • 空間 ' '
  • ハイフン「-」

基本的なコード サンプルを次に示します (CharSequence を使用すると、String だけでなく StringBuilder も引数として渡すことができます)。

public boolean isValidChar(CharSequence seq) {
    int len = seq.length();
    for(int i=0;i<len;i++) {
        char c = seq.charAt(i);
        // Test for all positive cases
        if('0'<=c && c<='9') continue;
        if('a'<=c && c<='z') continue;
        if('A'<=c && c<='Z') continue;
        if(c==' ') continue;
        if(c=='-') continue;
        // ... insert more positive character tests here
        // If we get here, we had an invalid char, fail right away
        return false;
    }
    // All seen chars were valid, succeed
    return true;
}
于 2009-04-14T23:46:02.807 に答える
3

java.lang.Character の文字クラス メソッドを使用して文字列を繰り返し処理し、各文字が受け入れられるかどうかをテストします。これはおそらく、StringUtils メソッドが行うすべてのことであり、正規表現は、一般化されたエンジンを駆動してほとんど同じことを行う方法にすぎません。

于 2009-04-14T23:45:39.017 に答える
1

2 つのオプションのうちの 1 つがあります。2. 文字列に含めることができない文字のリストを作成し、文字列チェックをループして、各文字がリストに含まれていないことを確認します。

リストを作成するには、より迅速なオプションを選択してください。

于 2009-04-14T23:47:47.887 に答える
0

必ず正規表現を使用してください。この正確なタスクのために非常に包括的なシステムが整っている場合、独自のシステムを作成しても意味がありません。正規表現について学習したりブラッシュアップしたりする必要がある場合は、この Web サイトをチェックしてください。http://regexr.com

私はこれで自分自身に挑戦します。

于 2015-06-28T00:34:33.367 に答える