嗨,我想检查一个字符串是否包含一个字母,一个数字和至少一个这些特殊字符(@ #,$)。所以任何人都可以请指导我解决这个问题。
注意:我有apache common lang 3.0库。这将有助于我们解决上述问题?
嗨,我想检查一个字符串是否包含一个字母,一个数字和至少一个这些特殊字符(@ #,$)。所以任何人都可以请指导我解决这个问题。
注意:我有apache common lang 3.0库。这将有助于我们解决上述问题?
这是一个简单的实现。
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。
谢谢安德烈亚斯。这是工作。 – VelNaga
你可以使用String.matches()和使用正则表达式来做到这一点。考虑以下解决方案。
public boolean isAlphaNumeric(String s){
String pattern= "^(?=.*[a-zA-Z])(?=.*\d)(?=.*[[email protected]#$*()_+])[A-Za-z\d][A-Za-z\[email protected]#$*()_+]";
if(s.matches(pattern)){
return true;
}
return false;
}
让我知道,如果它的工作原理。
不工作。它不允许其他特殊字符。如果你的字符串只包含“ganesh”,它是真的,但它应该返回false。对于我的情况字符串应该包含至少一个数字和特殊字符($,@,#)。 – VelNaga
在regEx上阅读或至少google在String中包含方法。你试过什么了 ? –