1

文字と数字の両方が含まれているかどうかを調べるために、JAVA で文字列を分析する必要があります。これが私がこれまでに持っているものです。変数 pass は、ユーザーが入力する最大 8 文字/数字の文字列です。

if(pass.matches("[^A-Za-z0-9]"))

{

System.out.println("Valid"); 

}

else

{

   System.out.println("Invalid");

}
4

2 に答える 2

4

あなたの質問は少しあいまいです。

文字列に文字が含まれているか数字が含まれているか (ただし、文字のみまたは数字のみ) だけを知りたい場合は、次の正規表現を使用します。

pass.matches("^[a-zA-Z0-9]+$");

true を返します。

文字と数字の両方が含まれているかどうかを確認したい場合は、より複雑になりますが、次のようになります。

pass.matches("^[a-zA-Z0-9]*(([a-zA-Z][0-9])|([0-9][a-zA-Z]))[a-zA-Z0-9]*$");

ではごきげんよう

于 2013-05-08T00:29:09.987 に答える
1

私は使用しますStringUtils.isAlphanumeric。コードは次のようになります。

if (StringUtils.isAlphanumeric(pass)) {
    //valid
} ...

また、最大8文字が必要だと言います。次のように実行できます。

if (StringUtils.isAlphanumeric(pass) && StringUtils.length(pass) <= 8) {
    //valid
} ...

pass長さに対して再度 StringUtils を使用する利点は、が nullの場合に NullPointerException が発生しないことです。または、単に を使用することもできますpass.length()が、NullPointerException が発生するリスクがあります。

于 2013-05-08T00:18:41.360 に答える