检查包含一个alpha&的Java String。数字字符和这些特殊字符之一(@,#,$)

时间:2016-02-11 07:28:27

标签: java apache-commons

您好我想检查字符串是否包含一个字母,一个数字和至少一个这些特殊字符(@,#,$)。所以任何人都可以指导我解决这个问题。

注意:我有一个常见的lang 3.0库。它有助于我们解决上述问题吗?

2 个答案:

答案 0 :(得分:1)

这是一个简单的实现。

private static boolean isValidPassword(char[] password) {
    boolean hasLetter = false, hasDigit = false, hasSpecial = false;
    for (char ch : password)
        if (Character.isLetter(ch))
            hasLetter = true;
        else if (Character.isDigit(ch))
            hasDigit = true;
        else if ("@#$".indexOf(ch) != -1)
            hasSpecial = true;
    return (hasLetter && hasDigit && hasSpecial);
}

我可以根据需要对“字母”,“数字”和“特殊”进行精确定义,并在需要时尽快停止搜索所有3个。

答案 1 :(得分:0)

您可以使用String.matches()和使用正则表达式执行此操作。考虑以下解决方案。

public boolean isAlphaNumeric(String s){
String pattern= "^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$*()_+])[A-Za-z\d][A-Za-z\d!@#$*()_+]";
    if(s.matches(pattern)){
        return true;
    }
    return false;   

}

让我知道它是否有效。