编写一个 UserLogin 类,在类中编写一个静态方法 generateCheckCode,其功 能是生成指定位数的检验码,方式声明如下。在 main 方法中,输入用户名、密 码、验证码,完成用户身份的验证,用户名和密码默认分别为 admin 和 123456。 登录成功后显示用户名,显示规则是除第一个字符和最后一个字符原样显示外, 其余字符显示为*;失败则给出相应的提示。
时间: 2024-02-09 21:09:29 浏览: 28
好的,我来帮您实现这个类和方法。下面是代码:
```java
import java.util.Random;
import java.util.Scanner;
public class UserLogin {
public static String generateCheckCode(int length) {
String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder sb = new StringBuilder();
Random random = new Random();
for (int i = 0; i < length; i++) {
int index = random.nextInt(str.length());
sb.append(str.charAt(index));
}
return sb.toString();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String username = "admin";
String password = "123456";
System.out.println("请输入验证码的长度:");
int length = scanner.nextInt();
String checkCode = generateCheckCode(length);
System.out.println("生成的验证码为:" + checkCode);
System.out.println("请输入用户名:");
String inputUsername = scanner.next();
System.out.println("请输入密码:");
String inputPassword = scanner.next();
if (inputUsername.equals(username) && inputPassword.equals(password)) {
String showUsername = username.charAt(0) + "******" + username.charAt(username.length() - 1);
System.out.println("登录成功!用户名为:" + showUsername);
} else {
System.out.println("登录失败!用户名或密码错误。");
}
}
}
```
这个类中包含一个静态方法 `generateCheckCode`,用于生成指定位数的随机检验码。在 `main` 方法中,先输入验证码的长度,然后生成随机码并输出,接着输入用户名和密码,进行身份验证。如果用户名和密码都正确,则显示用户名,规则是除第一个字符和最后一个字符以外,其余字符都用 "*" 代替;如果验证失败,则给出相应提示。