2.银行系统新增注册功能, 注册功 能要求用户名唯一, 不能与集合当中的任意一个账户的用户名相同,用户名具体如下: 1.用户名的长度需要是6 – 12位 2.用户名不能出现中文, 只能是数字或英文的组合, 可以是纯数字亦或者是纯字母 3.密码的具体需求如下: 1.密码长度不能小于8位且不能大于18位 2.密码不能出现中文, 不能是特殊字符, 只能是英文或者是数字的组合, 可以是纯数字或者是纯字母 3.密码要求效验两次, 当用户输入完密码后,需要让用户二次输入密码并且与上一次的密码进行对比, 对比失败则让用户重新开始注册的Java代码
时间: 2024-02-16 17:02:54 浏览: 103
好的,以下是实现上述功能的Java代码:
```java
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class BankSystem {
public static void main(String[] args) {
Set<String> usernames = new HashSet<String>();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请输入用户名:");
String username = scanner.nextLine();
if (username.length() < 6 || username.length() > 12) {
System.out.println("用户名长度应为6-12位!");
continue;
}
if (!username.matches("^[a-zA-Z0-9]+$")) {
System.out.println("用户名只能包含数字或英文字母!");
continue;
}
if (usernames.contains(username)) {
System.out.println("该用户名已被注册,请重新输入!");
continue;
}
System.out.print("请输入密码:");
String password1 = scanner.nextLine();
if (password1.length() < 8 || password1.length() > 18) {
System.out.println("密码长度应为8-18位!");
continue;
}
if (!password1.matches("^[a-zA-Z0-9]+$")) {
System.out.println("密码只能包含数字或英文字母!");
continue;
}
System.out.print("请再次输入密码:");
String password2 = scanner.nextLine();
if (!password1.equals(password2)) {
System.out.println("两次密码不一致,请重新输入!");
continue;
}
System.out.println("注册成功!");
usernames.add(username);
System.out.print("是否继续注册?(Y/N)");
String choice = scanner.nextLine();
if (!"Y".equalsIgnoreCase(choice)) {
break;
}
}
scanner.close();
}
}
```
这个程序使用了一个`HashSet`来存储已经注册的用户名,每次输入用户名之前先检查长度和格式,然后再检查是否与已有的用户名重复。如果用户名通过了检查,就继续让用户输入密码,并且要求用户确认密码。最后,如果注册成功,就将用户名加入`HashSet`中。如果用户不想继续注册,程序就会退出。
阅读全文