Java 编写一个程序来检查某些东西的密码

Java 编写一个程序来检查某些东西的密码,java,Java,我正在写一个程序来检查用户给出的密码中的值。我已经发布了下面的代码,我认为这一切都很好。我只是对应该如何检查if语句中布尔检查的语法感到困惑。感谢您的帮助,谢谢 public class PasswordValidation { public static void main(String[] args){ Scanner stdin = new Scanner(System.in); System.out.println("Password: ");

我正在写一个程序来检查用户给出的密码中的值。我已经发布了下面的代码,我认为这一切都很好。我只是对应该如何检查if语句中布尔检查的语法感到困惑。感谢您的帮助,谢谢

public class PasswordValidation
{
public static void main(String[] args){
    Scanner stdin = new Scanner(System.in);
    System.out.println("Password: ");
    String password = stdin.next();
    int passwordLength = password.length();

    String pCheck = "password";

    boolean capital;
    boolean lowercase;
    boolean number;
    boolean specialChar;
    char check;
    for(int i = 0; i < password.length(); i++){
        check = password.charAt(i);
        if(Character.isDigit(check)){
            number = true;
        }else if (Character.isUpperCase(check)){
            capital = true;
        }else if (Character.isLowerCase(check)){
            lowercase = true;
        }else{
            specialChar = true;
        }
    }
    if(number = true && capital = true && lowercase = true && specialChar = false && password.length() >= 8 && password.toLowerCase().contains(pCheck.toLowerCase())){
        System.out.println("Password is good");
公共类密码验证
{
公共静态void main(字符串[]args){
扫描仪标准输入=新扫描仪(System.in);
System.out.println(“密码:”);
字符串密码=stdin.next();
int passwordLength=password.length();
字符串pCheck=“password”;
布尔资本;
布尔小写;
布尔数;
布尔特殊字符;
字符检查;
对于(int i=0;i=8&&password.toLowerCase().contains(pCheck.toLowerCase()){
System.out.println(“密码正确”);

您有一些错误,要检查值的相等性,需要使用
=
而不是
=

number == true && capital == true && lowercase == true ...
或者你最好能这样做

number && capital && lowercase ...

因为它们只是布尔值

number=true
是一个赋值并更改变量值,但是
number==true
是一个比较。我也试过了,只是得到了一个语法错误,变量“number”没有初始化,然后在声明时将其设置为false。出于安全原因,最好保持p字符[]中的asswords,而不是字符串中的asswords。