黑莓中的文本字段验证 java

textfield Validation in blackberry java

我正在验证一个密码字段,它必须包含至少一个大写字母和一个 number.i,用于代码下方但它不起作用?

for (int i = 0;i<Password.getText().length(); i++) {

        char i1 = Password.getText().charAt(i);
        boolean valid;
    if ( valid=(i1!='A'||i1!='B'||i1!='C'||i1!='D'||i1!='E'||i1!='F'||i1!='G'||i1!='H'||i1!='I'||i1!='J'||i1!='K'||i1!='L'||i1!='M'||i1!='N'||i1!='O'||i1!='P'||i1!='Q'||i1!='R'||i1!='S'||i1!='T'||i1!='U'||i1!='V'||i1!='W'||i1!='X'||i1!='Y'||i1!='Z')&&(i1!='1'||i1!='2'||i1!='3'||i1!='4'||i1!='5'||i1!='6'||i1!='7'||i1!='8'||i1!='9'||i1!='0')) {

        if(valid=true){
                return true;
            }else{
            return false;
            }
        }

    }

如果你的密码必须至少有一个大写字母和至少一个数字你的逻辑是错误的。你应该有两个布尔值。

boolean hasCapitalLetter = false;
boolean hasNumber = false;

for (int i = 0;i<Password.getText().length(); i++) {
    char i1 = Password.getText().charAt(i);

    if (!hasCapitalLetter) {
        hasCapitalLetter = Character.isUpperCase(i1);
    }
    if (!hasNumber) {
        hasNumber = Character.isDigit(i1);
    }
    if (hasCapitalLetter && hasNumber) {
        return true;
    }
}

return false;