我正在尝试查看字符串是否至少包含数字或小写或大写。

我写了这样的东西:

      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;
    }

09-26 16:05