用java写登录验证:某网站规定,用户名由长度大于等于6的英文字母构成,则其密码自动生成为:用户名@yyyymmdd,其中yyyymmdd是一个有效生日。则程序运行,要求用户输入用户名及密码进行登录,如果均符合要求,则显示:欢迎您,用户名;否则,根据情况提示:用户名不规范或密码不正确。
时间: 2023-06-11 19:06:55 浏览: 145
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
以下是用Java实现的登录验证程序:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class LoginValidation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入用户名:");
String username = scanner.nextLine();
System.out.print("请输入密码:");
String password = scanner.nextLine();
if (!isValidUsername(username)) {
System.out.println("用户名不规范");
} else if (!isValidPassword(username, password)) {
System.out.println("密码不正确");
} else {
System.out.println("欢迎您," + username);
}
}
private static boolean isValidUsername(String username) {
return username.matches("[a-zA-Z]{6,}");
}
private static boolean isValidPassword(String username, String password) {
if (!password.matches(username + "@\\d{8}")) {
return false;
}
String dateString = password.substring(username.length() + 1);
try {
LocalDate birthday = LocalDate.parse(dateString, DateTimeFormatter.ofPattern("yyyyMMdd"));
return true;
} catch (Exception e) {
return false;
}
}
}
```
程序首先通过Scanner类获取用户输入的用户名和密码,然后分别调用isValidUsername和isValidPassword方法进行验证。isValidUsername方法使用正则表达式判断用户名是否符合规范,isValidPassword方法则先判断密码格式是否正确,然后再解析出其中的生日并判断是否有效。如果验证通过,则输出欢迎信息;否则根据情况输出错误信息。
阅读全文