我正在尝试使用 else if 语句来验证电子邮件,但是它会在 else if(password.isEmpty) 上抛出错误,说“else without if”

Posted

技术标签:

【中文标题】我正在尝试使用 else if 语句来验证电子邮件,但是它会在 else if(password.isEmpty) 上抛出错误,说“else without if”【英文标题】:I am trying an else if statement for validation email however it throws an error on else if(password.isEmpty) saying "else without if" 【发布时间】:2021-09-02 03:48:55 【问题描述】:

@覆盖 受保护的无效 onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main);

    Tmail = findViewById(R.id.login_email);
    Tpass = findViewById(R.id.login_password);
    Tconfirmpass = findViewById(R.id.loginRetype_password);
    Bar = findViewById(R.id.bar);
    button = findViewById(R.id.signin);

    mAuth = FirebaseAuth.getInstance();
    button.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 

            String email, password, confirm;

            email = Tmail.getEditText().getText().toString().trim();
            password = Tpass.getEditText().getText().toString().trim();
            confirm = Tconfirmpass.getEditText().getText().toString().trim();

            if (email.isEmpty())
                Tmail.getEditText().setError("Field should not be empty");
                Tmail.requestFocus();
            
            else if (!Patterns.EMAIL_ADDRESS.matcher(email).matches());
                Tmail.setError("Please enter a valid email Id");
                Tmail.requestFocus();
            
           else if (password.isEmpty())
                Tpass.setError("Please enter password");
                Tpass.requestFocus();
             else if (password.length() < 6) 
                Tpass.setError("Password too short");
                Tpass.requestFocus();
             else if (!confirm.equals(password)) 
                Tconfirmpass.setError("Password mismatch");
                Tconfirmpass.requestFocus();
             else mAuth.createUserWithEmailAndPassword(email, password)
    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() 
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) 
            if (task.isSuccessful()) 
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "createUserWithEmail:success");
                FirebaseUser user = mAuth.getCurrentUser();
                updateUI(user);
             else 
                // If sign in fails, display a message to the user.
                Log.w(TAG, "createUserWithEmail:failure", task.getException());
                Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                        Toast.LENGTH_SHORT).show();
                updateUI(null);
            
        
    );

            
        
    );


【问题讨论】:

【参考方案1】:

请正确格式化您的代码。

删除else if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()); 行中的分号,您应该一切顺利。

【讨论】:

以上是关于我正在尝试使用 else if 语句来验证电子邮件,但是它会在 else if(password.isEmpty) 上抛出错误,说“else without if”的主要内容,如果未能解决你的问题,请参考以下文章