我正在尝试查看字符串是否至少包含数字或小写或大写。
我写了这样的东西:
int combinations = 0;
string pass = "!!!AAabas1";
if (pass.matches("[0-9]")) {
combinations = combinations + 10;
}
if (pass.matches("[a-z]")) {
combinations =combinations + 26;
}
if (pass.matches("[A-Z]")) {
combinations =combinations + 26;
}
但是我不明白为什么我无法使组合达到36。它们一直保持为0。我在做什么错?
最佳答案
您可以改用Pattern,我认为“matches”方法会查找整个字符串以匹配正则表达式。
尝试下一个代码:
int combinations = 0;
String pass = "!!AAabas1";
if (Pattern.compile("[0-9]").matcher(pass).find()) {
combinations = combinations + 10;
}
if (Pattern.compile("[a-z]").matcher(pass).find()) {
combinations = combinations + 26;
}
if (Pattern.compile("[A-Z]").matcher(pass).find()) {
combinations = combinations + 26;
}