我正在努力尝试使用我在java文件中编码的setter / getters。基本上它应该如何工作是setPassword()
setter应该测试密码是否包含数字和字母,并且长度至少为8个字符。
我的代码中收到错误的部分如下:
public boolean setPassword(String password1){
int temp = password1.length();
boolean length = false;
boolean number = password1.hasAlphabet(); //hasAlphabet is undefined for type String
boolean letter = password1.hasNumber(); //hasNumber is undefined for type String
if(temp >= 8){
if(number){
if(letter){
password = password1;
}
}
}
else return false;
}
private boolean hasAlphabet(String password1){ //hasAlphabet is never used locally
if(password1.matches("%[a-zA-Z]%")){
return true;
}
else return false;
}
private boolean hasNumber(String password1){//hasNumber is never used locally
if(password1.matches(".*\\d.*")){
return true;
}
我的一些变量在代码中已经定义过,因此没有错误。我把注释中的错误放在有错误的行上。
答案 0 :(得分:2)
您在字符串实例password1.hasAlphabet()
上调用您的方法,这是错误的语法。 Java的String
类必须定义一个hasAlphabet()
方法才能工作。
您应该将字符串作为参数传递给您的方法。
boolean letter = hasAlphabet(password1);