方法validatePW:
不接受任何参数,也不返回任何参数。
PW政策:必须至少4个字符长 至少包含两个大写字母 至少一个号码。
如果PW不符合政策,则会引发异常。
答案 0 :(得分:1)
此validatePW
方法可能存在于User
类中,该类大致如下所示:
class User {
private int Id;
private String Password;
// ... other class variables, constructor, getters/setters
public void validatePW() {
int pwLength = this.Password.length();
if (pwLength < 4) {
throw new InvalidArgumentException("Password is too short.");
}
int upperCase = 0;
int lowerCase = 0;
int number = 0;
for (int i = 0; i < pwLength; i++) {
Character c = this.Password.charAt(i);
if (c.isUpperCase()) upperCase++;
if (c.isLowerCase()) lowerCase++;
if (c.isDigit()) number++;
}
if (upperCase == 0) {
throw new InvalidArgumentException("Password requires at least 1 upper case letter.");
}
if (lowerCase == 0) {
throw new InvalidArgumentException("Password requires at least 1 lower case letter.");
}
if (number == 0) {
throw new InvalidArgumentException("Password requires at least 1 number.");
}
}
}
答案 1 :(得分:1)
您应该考虑阅读The Java™ Tutorials,尤其是Defining Methods和Exceptions上的章节,因为这些是您完成此作业应熟悉的基础知识。
有多种方法可以完成此任务,这只是一个示例:
import java.util.Scanner;
import java.lang.IllegalArgumentException;
public class Q53733706 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Password: ");
String password = input.nextLine();
validatePW(password);
}
// Method validatePW:
static void validatePW(String p){
int upperCase = 0;
int isDigit = 0;
for (int k = 0; k < p.length(); k++) {
if (Character.isDigit(p.charAt(k))) isDigit++;
if (Character.isUpperCase(p.charAt(k))) upperCase++;
}
if ((p.length() < 4) || (upperCase < 1) || (isDigit < 1)){
throw new IllegalArgumentException("Invalid password.");
}
else{
System.out.println("Valid password.");
}
}
}
调整条件检查以符合您的特定“ PW政策”,因为问题中目前尚不清楚这些检查。