文字と数字の両方が含まれているかどうかを調べるために、JAVA で文字列を分析する必要があります。これが私がこれまでに持っているものです。変数 pass は、ユーザーが入力する最大 8 文字/数字の文字列です。
if(pass.matches("[^A-Za-z0-9]"))
{
System.out.println("Valid");
}
else
{
System.out.println("Invalid");
}
文字と数字の両方が含まれているかどうかを調べるために、JAVA で文字列を分析する必要があります。これが私がこれまでに持っているものです。変数 pass は、ユーザーが入力する最大 8 文字/数字の文字列です。
if(pass.matches("[^A-Za-z0-9]"))
{
System.out.println("Valid");
}
else
{
System.out.println("Invalid");
}
あなたの質問は少しあいまいです。
文字列に文字が含まれているか数字が含まれているか (ただし、文字のみまたは数字のみ) だけを知りたい場合は、次の正規表現を使用します。
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]*$");
ではごきげんよう
私は使用しますStringUtils.isAlphanumeric
。コードは次のようになります。
if (StringUtils.isAlphanumeric(pass)) {
//valid
} ...
また、最大8文字が必要だと言います。次のように実行できます。
if (StringUtils.isAlphanumeric(pass) && StringUtils.length(pass) <= 8) {
//valid
} ...
pass
長さに対して再度 StringUtils を使用する利点は、が nullの場合に NullPointerException が発生しないことです。または、単に を使用することもできますpass.length()
が、NullPointerException が発生するリスクがあります。