首页 > 解决方案 > 在java中检查密码。它必须包含至少 10 个字母(数字或数字)和至少 2 个数字

问题描述

我的代码有这个问题。它会读取密码是否至少有 10 个字符,但关于数字,它不起作用。它总是告诉我密码必须至少包含 2 位数字。

public class EsercizioPassword {

    static int passLength = 10;
    static String pass = "hello1221";

    public static void main(String[] args) {


        checkPass();
    }

    public static void checkPass() {
        int digit=0;
        for (int i = 0; i < pass.length(); i++) {
            if(Character.isDigit(pass.charAt(i))) {
                digit++;
                if(digit<2) {
                    System.out.println("At least 2 digits");
                    return;
                }
            }
            if (!Character.isLetterOrDigit(pass.charAt(i))) {
                System.out.println("Password must contains only Lettere or Digit ");
                return;
            }else if (pass.length() < 10) {
                System.out.println("Password must contains at least 10 characters");
                return;
            }

        }
        System.out.println("Correct password");

    }
}

标签: java

解决方案


您一增加就检查数字计数。digit>=2您应该在 for 循环退出后验证这一点。

您对长度验证执行相同的操作。也将其拉出循环。


推荐阅读